Встречается на 2% собеседований по Java
Как потерять объект в HashMap
В HashMap объект может "потеряться" из-за изменения ключа после добавления. HashMap использует хэш-код ключа для размещения и поиска значений. Если ключ изменяется (например, изменя поле, участвующее в equals/hashCode), HashMap не сможет найти его:
java
class Key {
int id;
@Override
public int hashCode() { return id; }
@Override
public boolean equals(Object o) { /*...*/ }
}
Key key = new Key();
key.id = 1;
Map<Key, String> map = new HashMap<>();
map.put(key, "value");
key.id = 2; // Изменяем ключ!
map.get(key); // Вернет null - объект "потерян"Решение: используйте неизменяемые объекты (String, Integer) в качестве ключей или не изменяйте ключи после добавления.

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