Встречается на 2% собеседований по Java

Почему важна иммутабельность ключей в HashMap

Иммутабельность ключей в HashMap критична, потому что их хэш-код используется для определения места хранения в бакетах. Если ключ изменяется после добавления в HashMap, его хэш-код может измениться, и тогда метод get() не найдет его в ожидаемом бакете, что приведет к потере данных.

Пример проблемы:

java
Map<MutableKey, String> map = new HashMap<>();
MutableKey key = new MutableKey("initial");
map.put(key, "value");
key.setValue("changed"); // Меняем состояние ключа
System.out.println(map.get(key)); // null – ключ потерян!

Решение:
Используйте иммутабельные ключи (например, String, Integer). Если нужен кастомный ключ:

  1. Сделайте его final или защитите от изменений.
  2. Переопределите equals() и hashCode() так, чтобы они зависели только от неизменяемых полей.

Это гарантирует корректную работу HashMap.

Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы