Если метод equals() переопределен в классе Java, то обычно также следует переопределить метод hashCode(). Это связано с тем, что hashCode() используется вместе с equals() при работе с хеш-таблицами и другими коллекциями, которые хранят элементы на основании их хеш-кодов. Если equals() переопределен, а hashCode() - нет, то могут возникнуть проблемы с поиском и удалением элементов в коллекциях. Вот пример переопределения этих методов для класса Person: public class Person {
private String name;
private int age;
// constructor, getter and setter methods...
@Override public boolean equals(Object o) {
if (this == o) return true;
if (!(o instanceof Person)) 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() сравнивает имя и возраст двух объектов