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;
}
// ако не е намерен, се добавя нов възел в началото на списъка