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