Назад к вопросам
Junior — Middle
66
Что происходит, когда два ключа получают одинаковый хэш-код в HashMap?
Компании, где спрашивали
One To Work
Ответ от нейросети
sobes.tech AI
Когда два ключа в HashMap имеют одинаковый хэш-код, происходит коллизия. HashMap решает эту проблему, помещая оба элемента в одну и ту же корзину (bucket). Внутри корзины элементы хранятся в виде связанного списка или, начиная с определённой версии Java, в виде сбалансированного дерева (TreeNode) для повышения производительности.
При добавлении нового ключа с таким же хэш-кодом HashMap перебирает элементы в корзине и сравнивает ключи методом equals(). Если ключ уже существует, значение обновляется; если нет — новый элемент добавляется в структуру внутри корзины.
Пример:
Map<String, String> map = new HashMap<>();
// Предположим, что "Aa" и "BB" имеют одинаковый хэш-код
map.put("Aa", "Value1");
map.put("BB", "Value2");
// Оба ключа будут храниться в одной корзине, но как разные записи