Junior — Middle
Spiega cosa significa una collisione di chiavi nella struttura dati HashMap e come gestisce questa situazione.
sobes.tech AI
Risposta dell'AI
Collisione di chiavi (hash collision) in HashMap si verifica quando due chiavi diverse producono lo stesso valore di indice calcolando la funzione hash.
Come gestisce HashMap questo:
- In Java, HashMap utilizza catene (liste collegate o alberi bilanciati) per memorizzare più elementi che finiscono nello stesso bucket.
- Quando si aggiunge un nuovo elemento con una chiave il cui hash coincide con uno esistente, il nuovo elemento viene aggiunto alla catena di quel bucket.
- Durante la ricerca di una chiave, HashMap scorre gli elementi nella catena, confrontando le chiavi con equals() per trovare quella corretta.
Dalla versione Java 8, se la catena diventa troppo lunga, viene trasformata in un albero bilanciato (TreeNode), migliorando le prestazioni di ricerca da O(n) a O(log n).