Встречается на 2% собеседований по Java
Можно ли потерять объект в HashMap
Да, объект может быть "потерян" в HashMap в нескольких случаях:
- Изменение ключа после добавления: Если изменяется поле ключа, используемое в
hashCode(), HashMap не сможет его найти. Пример:
java
Map<Key, String> map = new HashMap<>();
Key key = new Key("a"); // hashCode зависит от поля "a"
map.put(key, "value");
key.setField("b"); // изменили поле -> hashCode изменился
map.get(key); // вернет null, так как ищет по новому hashCode-
Плохая реализация hashCode(): Если hashCode возвращает константу, все элементы попадут в одну корзину, что резко снизит производительность.
-
Утечка памяти: Если ключи больше не используются, но остаются в HashMap (например, как ключи в статической мапе), это может привести к утечке памяти.
Для избежания проблем ключи HashMap должны быть:
- Неизменяемыми (immutable)
- Иметь правильные реализации hashCode() и equals()
- Не храниться дольше необходимого

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