Встречается на собеседованиях • сегодня
Как 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()` должен возвращать одинаковые значения.
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы