Назад к вопросам
Junior — Middle
68
Почему важно переопределять метод hashCode в ваших классах?
Ответ от нейросети
sobes.tech AI
Переопределение метода hashCode важно, чтобы объекты корректно работали в коллекциях, основанных на хэшировании (например, HashMap, HashSet).
Правила:
- Если два объекта равны по методу
equals(), то ихhashCode()должен возвращать одинаковое значение. - Если
hashCodeне переопределён, объекты с одинаковыми данными могут иметь разные хэши, что приведёт к неправильной работе коллекций.
Пример:
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
Person person = (Person) o;
return Objects.equals(id, person.id);
}
@Override
public int hashCode() {
return Objects.hash(id);
}
Здесь id — уникальный идентификатор объекта.