Una breve introduzione a TreeMap in Java con esempi



Questo articolo ti fornirà una conoscenza dettagliata e completa di TreeMap in Java con esempi di metodi e costruttori.

L'implementazione di un'interfaccia Map in Java è un'attività molto importante. A questo scopo, abbiamo TreeMap e HashMap . In questo articolo il nostro focus sarà su TreeMap in formato nel seguente ordine:

Cos'è una TreeMap in Java?

Una TreeMap in Java viene utilizzata per implementare l'interfaccia Map e NavigableMap insieme alla classe astratta. La mappa viene ordinata in base all'ordinamento naturale delle sue chiavi, o da un Comparatore fornito al momento della creazione della mappa, a seconda del costruttore utilizzato. Ciò si rivela un modo efficiente per ordinare e archiviare le coppie chiave-valore.





TreeMap-in-JavaL'ordine di archiviazione mantenuto dalla mappa ad albero deve essere coerente con gli uguali proprio come qualsiasi altra mappa ordinata, indipendentemente dai comparatori espliciti. La mappa ad alberol'implementazione non è sincronizzata nel senso che se si accede a una mappa da più thread, contemporaneamente e almeno uno dei thread modifica strutturalmente la mappa, deve essere sincronizzata esternamente.

Caratteristiche di TreeMaps

  • Questa classe è un membro di Java Collections Framework.



  • La classe implementa le interfacce Map tra cui NavigableMap, SortedMap ed estende AbstractMap

  • TreeMap in Java non consente chiavi null (come Map) e quindi viene generata un'eccezione NullPointerException. Tuttavia, più valori null possono essere associati a chiavi diverse.

  • Tutte le coppie Map.Entry restituite dai metodi in questa classe e le relative viste rappresentano gli snapshot dei mapping nel momento in cui sono stati prodotti.



  • Non supportano il metodo Entry.setValue.

Punti importanti da ricordare

  1. Oltre a implementare l'interfaccia Map, Java TreeMap implementa anche NavigableMap e indirettamente implementa l'interfaccia SortedMap. TreeMap estende anche la classe AbstractMap.

  2. Le voci di TreeMap sono ordinate nell'ordine naturale delle sue chiavi. Fornisce inoltre un costruttore per fornire il Comparatore da utilizzare per l'ordinazione. Quindi, se utilizzi una classe come chiave, assicurati che stia implementando l'interfaccia Comparable per l'ordinamento naturale. Dai un'occhiata alle domande dell'intervista sulle collezioni java per capire l'importanza di questi metodi.

  3. L'implementazione di Java TreeMap fornisce un tempo di log (n) garantito per le operazioni containsKey, get, put e remove.

  4. TreeMap non è sincronizzato e quindi non thread-safe. Per gli ambienti multithread, è possibile ottenere un wrapping sincronizzato utilizzando il metodo Collections.synchronizedSortedMap.

  5. I metodi TreeMap per ottenere keyset e valori restituiscono Iterator di natura rapida, quindi qualsiasi modifica simultanea genererà ConcurrentModificationException.

  6. TreeMap in java non consente chiavi null, tuttavia, è possibile avere più valori null associati a chiavi diverse.

Costruttori in TreeMap

Costruttore Descrizione
TreeMap () Costruisce una mappa ad albero vuota che verrà ordinata utilizzando l'ordine naturale delle sue chiavi.
TreeMap (comparatore comp) Costruisce una mappa basata su albero vuota che verrà ordinata utilizzando Comparator comp.
TreeMap (Mappa m) Inizializza una mappa ad albero con le voci da m, che verrà ordinata utilizzando l'ordine naturale delle chiavi.
TreeMap (SortedMap sm) Inizializza una mappa ad albero con le voci di SortedMap sm, che verrà ordinata nello stesso ordine di sm.

Metodi in TreeMap

Metodo Descrizione
void clear () Rimuove tutte le mappature da questa TreeMap.
Oggetto clone () Restituisce una copia superficiale di questa istanza di TreeMap.
Comparatore comparatore () Restituisce il comparatore utilizzato per ordinare questa mappa o null se questa mappa utilizza l'ordine naturale delle sue chiavi.
booleano containsKey (chiave oggetto) Restituisce vero se questa mappa contiene una mappatura per la chiave specificata.
boolean containsValue (valore oggetto) Restituisce vero se questa mappa mappa una o più chiavi sul valore specificato.
Imposta entrySet () Restituisce una vista di insieme delle mappature contenute in questa mappa.
Oggetto firstKey () Restituisce il primo tasto (il più basso) attualmente in questa mappa ordinata.
Object get (Object key) Restituisce il valore a cui questa mappa mappa la chiave specificata.
SortedMap headMap (Object toKey) Restituisce una visualizzazione della parte di questa mappa le cui chiavi sono strettamente inferiori a toKey.
Imposta keySet () Restituisce una vista Set delle chiavi contenute in questa mappa.
Oggetto lastKey () Restituisce l'ultima chiave (la più alta) attualmente in questa mappa ordinata.
Oggetto messo (chiave oggetto, valore oggetto) Associa il valore specificato alla chiave specificata in questa mappa.
void putAll (Mappa mappa) Copia tutte le mappature dalla mappa specificata a questa mappa.
Rimuovi oggetto (chiave oggetto) Rimuove la mappatura per questa chiave da questa TreeMap, se presente.
int size () Restituisce il numero di mappature valore-chiave in questa mappa.
Mappa secondaria SortedMap (Object fromKey, Object toKey) Restituisce una visualizzazione della parte di questa mappa le cui chiavi vanno da fromKey, inclusive, a toKey, exclusive.
SortedMap tailMap (Object fromKey) Restituisce una visualizzazione della parte di questa mappa le cui chiavi sono maggiori o uguali a fromKey.
Valori di raccolta () Restituisce una vista della raccolta dei valori contenuti in questa mappa.

Esempio di TreeMap in Java

import java.util.TreeMap public class TreeMapMain {public static void main (String args []) {// TreeMap con Country come chiave e capitale come valore // TreeMap memorizza gli elementi nell'ordine naturale delle chiavi. TreeMap countryCapitalMap = new TreeMap () countryCapitalMap.put ('India', 'Delhi') countryCapitalMap.put ('Japan', 'Tokyo') countryCapitalMap.put ('France', 'Paris') countryCapitalMap.put ('Russia' , 'Mosca') System.out.println ('-----------------------------') // Iterazione di TreeMap utilizzando keySet ( ) e per ogni ciclo System.out.println ('Iterating TreeMap Using keySet () and for each loop') for (String countryKey: countryCapitalMap.keySet ()) {System.out.println ('Country:' + countryKey + ' e Capitale: '+ countryCapitalMap.get (countryKey))} System.out.println (' ----------------------------- ' )}}

Produzione:

php trasforma la stringa in array

Con questo, arriviamo alla fine di questo articolo TreeMap in Java. C diamine il da Edureka, una società di formazione online affidabile con una rete di oltre 250.000 studenti soddisfatti sparsi in tutto il mondo. Il corso di formazione e certificazione Java J2EE e SOA di Edureka è progettato per studenti e professionisti che desiderano diventare sviluppatori Java. Il corso è progettato per darti un vantaggio nella programmazione Java e formarti per concetti Java sia di base che avanzati insieme a vari framework Java come Hibernate e Spring.

Hai domande per noi? Per favore, menzionalo nella sezione commenti di questo blog 'TreeMap in Java' e ti risponderemo il prima possibile.