Встречается на собеседованиях • сегодня
Почему тип данных, используемый в качестве ключа в Hash Table, должен быть неизменяемым
В Java ключ в `HashMap` должен быть неизменяемым (или по крайней мере не изменяться после добавления), потому что хеш-код ключа используется для определения корзины (bucket), в которой хранится запись. Если ключ изменяется после добавления, его хеш-код может измениться, и тогда `HashMap` не сможет найти его в правильной корзине, что приведёт к потере данных.
Пример:
```java
Map, String> map = new HashMap<>();
List key = new ArrayList<>(Arrays.asList("a", "b"));
map.put(key, "value");
key.add("c"); // Изменяем ключ!
System.out.println(map.get(key)); // null - запись потеряна
```
Используйте неизменяемые типы (`String`, `Integer` и т.д.) или убедитесь, что ключ не изменяется после добавления.

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