Встречается на собеседованиях • сегодня
Какие элементы являются сравнимыми в HashMap
В HashMap ключи должны быть сравнимыми для корректной работы. Это обеспечивается через методы equals() и hashCode().
equals()– определяет логическое равенство объектов.hashCode()– возвращает числовое значение для быстрого поиска в бакетах.
Обязательные условия:
- Если
a.equals(b) == true, тоa.hashCode() == b.hashCode(). - Обратное не обязательно (коллизии возможны).
Пример некорректного ключа (нарушает контракт):
java
class BadKey {
int id;
@Override public boolean equals(Object o) { /*...*/ }
// hashCode() не переопределён → возможны ошибки в HashMap
} Исправленный вариант:
java
class GoodKey {
int id;
@Override public boolean equals(Object o) { /*...*/ }
@Override public int hashCode() { return id; } // Консистентно с equals()
} Если ключи неизменяемые (например, String, Integer), это идеально, так как их хеш-код кешируется.

Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы