Sobes.tech
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.