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

Как HashMap сравнивает объекты

HashMap использует hashCode() для определения корзины (bucket), в которую помещается объект. Если в одной корзине оказываются несколько объектов, для их сравнения используется equals().

Пример:

java
class Key {
    String id;

    @Override
    public int hashCode() {
        return id.hashCode();
    }
text
@Override
public boolean equals(Object obj) {
    if (this == obj) return true;
    if (obj == null || getClass() != obj.getClass()) return false;
    Key key = (Key) obj;
    return id.equals(key.id);
}

}

text

**Важно:**
- Если `hashCode()` не переопределён, объекты с одинаковыми полями могут попасть в разные корзины.
- Если `equals()` не переопределён, сравнение будет по ссылке, а не по содержимому.
- Контракт: если `equals()` возвращает `true`, `hashCode()` должен возвращать одинаковые значения.
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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