Junior — Middle
Explica ce înseamnă o coliziune de chei în structura de date HashMap și cum gestionează această situație.
sobes.tech AI
Răspuns de la AI
Coliziunea de chei (hash collision) în HashMap apare atunci când două chei diferite dau aceeași valoare de index la calcularea funcției hash.
Cum gestionează HashMap acest lucru:
- În Java, HashMap folosește lanțuri (liste înlănțuite sau arbori echilibrați) pentru a stoca mai multe elemente care cad în același coș.
- La adăugarea unui element nou cu o cheie a cărei valoare hash coincide cu una existentă, elementul nou este adăugat în lanțul acelui coș.
- La căutarea unei chei, HashMap parcurge elementele din lanț, comparând cheile cu metoda equals() pentru a găsi cea potrivită.
Din Java 8, dacă lanțul devine prea lung, acesta este transformat într-un arbore echilibrat (TreeNode), ceea ce îmbunătățește performanța căutării de la O(n) la O(log n).