Встречается на собеседованиях • сегодня

Создавал ли equals

Да, создавал. В Java метод equals() используется для сравнения объектов по значению, а не по ссылке (как ==). По умолчанию он сравнивает ссылки, но его можно переопределить для логического сравнения полей.

Пример переопределения equals() для класса Person:

java
@Override
public boolean equals(Object obj) {
    if (this == obj) return true;
    if (obj == null || getClass() != obj.getClass()) return false;
    Person person = (Person) obj;
    return age == person.age && Objects.equals(name, person.name);
}

Важно соблюдать контракт equals():

  1. Рефлексивность: x.equals(x) == true
  2. Симметричность: x.equals(y) == y.equals(x)
  3. Транзитивность: если x.equals(y) и y.equals(z), то x.equals(z)
  4. Консистентность: повторные вызовы дают одинаковый результат
  5. Сравнение с null: x.equals(null) == false

Также рекомендуется переопределять hashCode(), чтобы объекты, равные по equals(), имели одинаковый хеш-код.

Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы