Caricamento 1 000 000 numeri impiegano 2 secondi per caricarsi in una treemap (albero di ricerca binario), ma impiegano millisecondi per caricarsi in una mappa di hash (in java).
L'unica differenza tra i due è che posso vedere che è possibile impostare le dimensioni iniziali di hashmap in modo che non sia necessario ridimensionare continuamente.
Perché TreeMap di Java non consente una dimensione iniziale?
Mi sbaglio supporre che le dimensioni iniziali dell'array TreeMap debbano essere impostate? C'è una ragione diversa per cui è così lento?
Esiste un motivo logico per cui non è possibile impostare la dimensione TreeMap o qualsiasi albero di ricerca binaria generico o è sbagliato?
Questa non è l'unica differenza. Gli inserimenti nella mappa degli assi prendono O (log n) mentre l'hashmap prende O (1). – Zong
Non è così. TreeMap e HashMap useranno una struttura leggermente diversa per memorizzare i propri dati interni. Ognuno non è in TreeMap ha bisogno di provare e risolvere la posizione nella struttura che la nuova voce deve essere posizionata, a tempo necessario – MadProgrammer
Oggi hai imparato come * incredibilmente * veloce è una mappa di hash. – Boann