Ответ
hashCode() — это метод класса Object в Java, возвращающий целочисленное значение (хеш-код), которое используется для быстрого сравнения объектов в коллекциях, таких как HashMap, HashSet и т.д.
Основные правила:
- Если два объекта равны (
equals()возвращаетtrue), ихhashCode()должен быть одинаковым. - Обратное не обязательно: разные объекты могут иметь одинаковый хеш-код (коллизия).
- Хеш-код должен оставаться неизменным, если объект не изменяется.
Пример:
@Override
public int hashCode() {
int prime = 31;
int result = 1;
result = prime * result + (int) (id ^ (id >>> 32));
result = prime * result + name.hashCode();
return result;
}
Если не переопределить hashCode(), используется реализация Object, которая обычно возвращает адрес объекта в памяти.