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

По чему эквиваленты эквивалентны объектам

В Java эквивалентность объектов определяется методами equals() и hashCode(). По контракту:

  1. Если a.equals(b) == true, то a.hashCode() == b.hashCode()
  2. Обратное не обязательно верно (коллизии хешей возможны)

Пример:

java
class Person {
    String name;
    
    @Override
    public boolean equals(Object o) {
        if (this == o) return true;
        if (!(o instanceof Person)) return false;
        return name.equals(((Person) o).name);
    }
    
    @Override
    public int hashCode() {
        return name.hashCode();
    }
}

Два объекта считаются эквивалентными, если их equals() возвращает true. Хеш-коды должны совпадать для корректной работы в коллекциях типа HashMap/HashSet.

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

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

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

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