hashCode() - это метод, определенный в классе Object, который возвращает целочисленное значение (хэш-код) для объекта.
Основные свойства и назначение hashCode():
HashSet, HashMap и Hashtable. Хэш-код используется для определения "корзины" (bucket), в которой может находиться объект.equals(): Согласно контракту Object, если два объекта считаются равными методом equals(), то их хэш-коды, возвращаемые методом hashCode(), должны быть одинаковыми. Обратное неверно: два объекта могут иметь одинаковый хэш-код, но быть неравными (это называется коллизией).equals(), всегда обязательно нужно переопределять и метод hashCode(), чтобы поддерживать контракт Object и обеспечить корректное поведение хэш-коллекций.Пример переопределения hashCode():
java
Если hashCode() не переопределен при переопределении equals(), хэш-коллекции будут работать некорректно. Например, два объекта, считающиеся равными по equals(), могут попасть в разные корзины, и метод contains() или get() не сможет их найти.