Sobes.tech
Junior — Middle

Как се реализира съхранението и обработката на елементи с еднакъв хеш код в структурата данни HashMap?

sobes.tech AI

Отговор от AI

В HashMap елементите с еднакъв хеш код (колизии) се обработват чрез вериги (chaining) или други методи за разрешаване на колизии. В класическата реализация на Java HashMap се използва свързан списък или дърво (ако има много елементи с един и същ хеш код).

Когато две ключа имат еднакъв хеш код, те се поставят в една "кофа" (bucket). При търсене или добавяне, се обхождат елементите в тази кофа, сравнявайки ключовете с метода equals(), за да се намери желаният елемент.

Обобщен пример:

int bucketIndex = hash(key) % table.length;
Node current = table[bucketIndex];
while (current != null) {
    if (current.key.equals(key)) {
        // намерен елемент
        break;
    }
    current = current.next;
}
// ако не е намерен, се добавя нов възел в началото на списъка