Ответ
Метод equals() в Java используется для сравнения объектов на содержательное равенство, в отличие от ==, который сравнивает ссылки.
Переопределение equals() должно учитывать:
- Рефлексивность:
a.equals(a) == true - Симметричность:
a.equals(b) == b.equals(a) - Транзитивность: если
a.equals(b)иb.equals(c), тоa.equals(c) - Консистентность: повторные вызовы дают одинаковый результат
- Неравенство с
null:a.equals(null) == false
Пример:
@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);
}
Всегда переопределяйте hashCode(), если переопределяете equals()!
Видео-ответы
▶
▶
▶
▶
▶
▶
▶
▶