Встречается на собеседованиях • сегодня

Почему тип данных, используемый в качестве ключа в 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` и т.д.) или убедитесь, что ключ не изменяется после добавления.
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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