Differenza tra HashMap e TreeMap in Java
Contenuto
HashMap e TreeMap sono le classi Map ed entrambe implementano l'interfaccia Map. La mappa è un oggetto che memorizza coppie chiave-valore, in cui ogni chiave è unica e può contenere valori duplicati. La classe HashMap utilizza la tabella hash come struttura di dati. TreeMap utilizza l'albero rosso-nero come struttura dati. La differenza principale tra HashMap e Treemap è che HashMap non mantiene l'ordine di inserimento mentre, il treemap lo fa.
Quindi iniziamo la nostra discussione sulle differenze tra HashMap e TreeMap con l'aiuto della tabella di confronto mostrata di seguito.
- Tabella di comparazione
- Definizione
- Differenze chiave
- Conclusione
Tabella di comparazione
Base per il confronto | HashMap | TreeMap |
---|---|---|
Di base | HashMap non mantiene l'ordine di inserimento. | TreeMap mantiene l'ordine di inserimento. |
Struttura dati | HashMap utilizza la tabella hash come struttura di dati sottostante. | TreeMap utilizza Red-Black Tree come struttura dati sottostante. |
Chiavi e valori nulli | HashMap consente la chiave Null una volta e il valore Null in qualsiasi numero di volte. | TreeMap non consente la chiave Null ma consente i valori Null in qualsiasi numero di volte. |
Estende e implementa | HashMap estende la classe AbstractMap e implementa l'interfaccia Map. | TreeMap estende la classe AbstractMap e implementa l'interfaccia SortedMap e NavigableMap. |
Prestazione | HashMap funziona più velocemente. | TreeMap rispetto a HashMap funziona più lentamente. |
Definizione di HashMap
HashMap è una classe Map. Usa il tabella hash, come struttura di dati per memorizzare la coppia valore-chiave delle mappe. L'inserimento della coppia chiave-valore viene effettuato utilizzando il codice hash del chiavi. Pertanto, ogni chiave nella mappa deve essere unica in quanto verrà utilizzata per recuperare i valori.
L'ordine di inserimento in HashMap è non preservato, il che significa che l'oggetto hashmap non restituisce gli elementi nell'ordine in cui sono stati inseriti. D'altra parte, l'ordine in cui verranno restituiti gli elementi non è fisso.
Il chiave è permesso essere NULLO subito, ma il valori può essere NULLO in qualsiasi momento. HashMap può contenere il file eterogeneo oggetti per chiavi e valori.
Esistono quattro costruttori di HashMap:
HashMap () HashMap (Mappa m) HashMap (capacità int), HashMap (capacità int, float fillRatio)
Il primo costruttore crea l'oggetto vuoto di HashMap. Il secondo il costruttore inizializza HashMap usando elementi di Map m. Il terzo Il costruttore inizializza HashMap con la capacità fornita nell'argomento. Il il quarto Il costruttore inizializza la capacità e il rapporto di riempimento dell'oggetto HashMap.
Il predefinito capacità di HashMap è 16e l'impostazione predefinita rapporto di riempimento di HashMap è 0.75.
Definizione di TreeMap
Come HashMap, TreeMap è anche una classe Map. TreeMap si estende AbstractMap classe e strumenti NavigabelMap e SortedMap. Gli oggetti TreeMap memorizza gli elementi della mappa nella struttura ad albero. La struttura dei dati utilizzata per la memorizzazione della mappa è la Albero rosso-nero.
TreeMap memorizza la coppia valore-chiave nell'ordine ordinato, che aiuta a recuperare rapidamente gli elementi. L'oggetto TreeMap restituisce gli elementi in smistato (ascendente) ordine.
Esistono quattro costruttori di TreeMap:
TreeMap () TreeMap (Comparator <? Super K> comp) TreeMap (Mappa <? Estende K,? Estende V> m) TreeMap (SortedMap Il primo i costruttori creano un oggetto vuoto di TreeMap che sarebbe ordinato in ordine naturale le sue chiavi. Il secondo il costruttore creerà una mappa ad albero vuota che verrà ordinata per Comparatore cmp. Il terzo il costruttore sopra creerà una mappa di alberi che verrà inizializzata usando le voci di Carta geografica m. Il il quarto il costruttore creerà una mappa trema che verrà inizializzata usando le voci di SortedMap sm. Treemap non ha nuovi metodi propri ma utilizza il metodo di interfaccia NavigableMap e SortedMap e la classe AbstractMap. TreeMap deve essere utilizzato solo quando è richiesta una coppia valore-chiave in forma ordinata. Poiché l'ordinamento include i costi delle prestazioni. HashMap non sincronizzato funziona più velocemente.
Conclusione: