Встречается на 2% собеседований по Java
Что будет если использовать мутабельный объект в виде ключа
Если использовать мутабельный объект как ключ в HashMap или HashSet, это может привести к потере доступа к значению. При изменении объекта меняется его hashCode(), но коллекция продолжает хранить его в старой корзине (bucket). Пример:
java
Map<MutableKey, String> map = new HashMap<>();
MutableKey key = new MutableKey(1);
map.put(key, "value");
key.setId(2); // Изменили hashCode ключа
System.out.println(map.get(key)); // null - не найдётПроблемы:
- Потеря значения при изменении ключа
- Нарушение контракта
equals/hashCode(объект должен оставаться постоянным) - Утечки памяти (старые ключи остаются в коллекции)
Решение: Используйте только иммутабельные объекты (String, Integer и т.д.) в качестве ключей.

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