Junior — Middle
Magyarázza el, mit jelent a kulcsütközés a HashMap adatstruktúrában, és hogyan kezeli ezt.
sobes.tech MI
Válasz az MI-től
A kulcsütközés (hash collision) a HashMap-ben akkor fordul elő, amikor két különböző kulcs ugyanazt az indexértéket adja a hash függvény kiszámításakor.
Hogyan kezeli ezt a HashMap:
- Java-ban a HashMap láncokat (összekapcsolt listák vagy kiegyensúlyozott fák) használ a több elem tárolására, amelyek ugyanabba a vödörbe kerülnek.
- Új elem hozzáadásakor, amelynek a hash értéke megegyezik egy meglévőével, az új elem hozzáadódik annak a vödörnek a láncához.
- Kereséskor a HashMap végigiterál a lánc elemein, összehasonlítva a kulcsokat az equals() metódussal, hogy megtalálja a megfelelőt.
Java 8-tól kezdve, ha a lánc túl hosszú lesz, átalakítja egy kiegyensúlyozott fára (TreeNode), ami javítja a keresési teljesítményt O(n) -ről O(log n) -re.