Secondo questo post:Java attuazione 8 hashmap utilizzando TreeNode anziché LinkedList
java 8 HashMaps utilizzare un TreeNode invece di una LinkedList (come in Java 7) come elementi della matrice.
I TreeNode hanno la proprietà speciale di agire come una lista collegata se il numero di elementi è piccolo e agisce come un albero nero rosso se c'è un numero elevato di elementi. (Poiché le operazioni che coinvolgono un albero nero rosso sono log (n)).
Tuttavia, ciò non richiede che la chiave sia comparabile o che esista un ordinamento delle chiavi?
Questo è applicato all'hashmap di java 8? Userà solo alberi neri rossi se le chiavi sono comparabili (l'ordine delle chiavi esiste)?
"Tuttavia, ciò non richiede che la chiave sia comparabile o che esista un ordinamento delle chiavi?" non fuori rotta no – Shahzeb
_I bind di alberi (cioè i bin i cui elementi sono tutti TreeNode) sono ordinati principalmente da hashCode, ma nel caso di legami, se due elementi sono della stessa "classe C implements Comparable", digita quindi il loro metodo compareTo è usato per ordinare._ –
Shahzeb, perché no? @SotiriosDelimanolis, ti riferisci alla chiave come classe C? cosa succede se non implementa Comparable? capisco che i contenitori albero sono ordinati dal loro codice hash, sto parlando della ricerca all'interno dei TreeNodes –