Встречается на 2% собеседований по Java
Может ли не найтись значение по ключу после вставки пары ключ-значение в HashMap
Да, может, если ключ изменился после вставки. HashMap использует hashCode() и equals() для работы с ключами. Если ключ — mutable-объект, и его состояние изменилось так, что hashCode() вернет другое значение, HashMap не сможет найти его в исходном бакете.
java
Map<MutableKey, String> map = new HashMap<>();
MutableKey key = new MutableKey("initial");
map.put(key, "value");
key.setName("changed"); // изменили ключ
System.out.println(map.get(key)); // null — не найдено!Решение: Используйте immutable-объекты (например, String, Integer) в качестве ключей. Если mutable-ключ необходим, избегайте изменений после вставки.

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