Sobes.tech
Назад к вопросам
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");

// Оба ключа будут храниться в одной корзине, но как разные записи