Назад к вопросам
СБЕР
Revolut
Иннотех
Альфа-Банк
OZON
IT One
ОТП Банк
Junior — Middle
142
Как правильно реализовать методы hashCode и equals в классе?
Компании, где спрашивали
Prooftech
Норд Клан
Акселератор возможностей
ТОП КЕЙС
Ответ от нейросети
sobes.tech AI
Методы hashCode и equals в Java должны быть реализованы так, чтобы:
- Если два объекта равны по
equals, то ихhashCodeтоже должен быть одинаковым. equalsдолжен быть рефлексивным, симметричным, транзитивным и консистентным.
Пример правильной реализации для класса с двумя полями id и name:
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
MyClass myClass = (MyClass) o;
return Objects.equals(id, myClass.id) && Objects.equals(name, myClass.name);
}
@Override
public int hashCode() {
return Objects.hash(id, name);
}
Используйте Objects.equals и Objects.hash для удобства и безопасности от NullPointerException. Реализация должна учитывать все поля, которые влияют на логическое равенство объектов.