Sobes.tech
Junior — Middle

Hoe worden opslag en verwerking van elementen met dezelfde hash-code in de HashMap-gegevensstructuur gerealiseerd?

sobes.tech AI

Antwoord van AI

In HashMap worden elementen met dezelfde hash-code (botsingen) afgehandeld met behulp van chaining of andere methoden voor het oplossen van botsingen. In de klassieke implementatie van Java HashMap wordt een gekoppelde lijst of een boom gebruikt (als er veel elementen met dezelfde hash-code zijn).

Wanneer twee sleutels dezelfde hash-code hebben, worden ze in één "emmer" (bucket) geplaatst. Bij zoeken of invoegen worden de elementen in deze emmer doorlopen, waarbij de sleutels worden vergeleken met de methode equals() om het gewenste element te vinden.

Eenvoudig voorbeeld:

int bucketIndex = hash(key) % table.length;
Node current = table[bucketIndex];
while (current != null) {
    if (current.key.equals(key)) {
        // element gevonden
        break;
    }
    current = current.next;
}
// als niet gevonden, wordt een nieuwe knoop aan het begin van de lijst toegevoegd