logo

Classe Java TreeMap

Gerarchia delle classi Java TreeMap

La classe Java TreeMap è un'implementazione basata su albero rosso-nero. Fornisce un mezzo efficiente per archiviare coppie chiave-valore in ordine ordinato.

I punti importanti sulla classe Java TreeMap sono:

  • Java TreeMap contiene valori basati sulla chiave. Implementa l'interfaccia NavigableMap ed estende la classe AbstractMap.
  • Java TreeMap contiene solo elementi univoci.
  • Java TreeMap non può avere una chiave nulla ma può avere più valori nulli.
  • Java TreeMap non è sincronizzato.
  • Java TreeMap mantiene l'ordine crescente.

Dichiarazione della classe TreeMap

Vediamo la dichiarazione per la classe java.util.TreeMap.

Giava 8
 public class TreeMap extends AbstractMap implements NavigableMap, Cloneable, Serializable 

Parametri della classe TreeMap

Vediamo i parametri per la classe java.util.TreeMap.

    K: È il tipo di chiavi gestite da questa mappa.IN: È il tipo di valori mappati.

Costruttori della classe Java TreeMap

CostruttoreDescrizione
MappaAlbero()Viene utilizzato per costruire una mappa ad albero vuota che verrà ordinata utilizzando l'ordine naturale della sua chiave.
TreeMap (comparatore comparatore)Viene utilizzato per costruire una mappa vuota basata su alberi che verrà ordinata utilizzando il comparatore comp.
MappaAlbero(Mappa m)Viene utilizzato per inizializzare una mappa ad albero con le voci da M , che verrà ordinato utilizzando l'ordine naturale delle chiavi.
MappaAlbero(MappaOrdinata m)Viene utilizzato per inizializzare una mappa ad albero con le voci di SortedMap sm , che verrà ordinato nello stesso ordine di sm.

Metodi della classe Java TreeMap

MetodoDescrizione
Mappa.Ingresso soffittoIngresso(tasto K)Restituisce la coppia chiave-valore avente la chiave minima, maggiore o uguale alla chiave specificata o nulla se tale chiave non esiste.
K soffittoChiave (chiave K)Restituisce la chiave minima, maggiore della chiave specificata o nulla se tale chiave non esiste.
vuoto chiaro()Rimuove tutte le coppie chiave-valore da una mappa.
Clone oggetto()Restituisce una copia superficiale dell'istanza TreeMap.
Comparatore comparatore()Restituisce il comparatore che dispone la chiave in ordine, o null se la mappa utilizza l'ordinamento naturale.
NavigableSet discendenteKeySet()Restituisce una vista NavigableSet in ordine inverso delle chiavi contenute nella mappa.
Mappa Navigabile Mappa discendente()Restituisce le coppie chiave-valore specificate in ordine decrescente.
Map.Entry firstEntry()Restituisce la coppia chiave-valore con la chiave minore.
Map.Entry floorEntry(tasto K)Restituisce la chiave più grande, minore o uguale alla chiave specificata o null se tale chiave non esiste.
void forEach(azione BiConsumer)Esegue l'azione specificata per ogni voce nella mappa finché tutte le voci non vengono elaborate o l'azione genera un'eccezione.
Mappa ordinata headMap(K toKey)Restituisce le coppie chiave-valore le cui chiavi sono rigorosamente inferiori a toKey.
NavigableMap headMap(K toKey, booleano incluso)Restituisce le coppie chiave-valore le cui chiavi sono minori di (o uguali a, se inclusivo è vero) toKey.
Map.EntryhigherEntry(tasto K)Restituisce la chiave minima strettamente maggiore della chiave data, o null se tale chiave non esiste.
K più altoTasto(tasto K)Viene utilizzato per restituire true se questa mappa contiene una mappatura per la chiave specificata.
Imposta keySet()Restituisce la raccolta delle chiavi esistenti nella mappa.
Map.Entry lastEntry()Restituisce la coppia chiave-valore con la chiave più grande o null se tale chiave non esiste.
Map.Entry lowerEntry(tasto K)Restituisce una mappatura chiave-valore associata alla chiave più grande, rigorosamente inferiore alla chiave specificata, o nulla se tale chiave non esiste.
K lowerKey (tasto K)Restituisce la chiave più grande strettamente inferiore alla chiave data, o null se tale chiave non esiste.
NavigableSet navigableKeySet()Restituisce una vista NavigableSet delle chiavi contenute in questa mappa.
Map.Entry pollFirstEntry()Rimuove e restituisce una mappatura chiave-valore associata alla chiave minima in questa mappa o null se la mappa è vuota.
Map.Entry pollLastEntry()Rimuove e restituisce una mappatura chiave-valore associata alla chiave più grande in questa mappa o null se la mappa è vuota.
V put (chiave K, valore V)Inserisce il valore specificato con la chiave specificata nella mappa.
void putAll(Mappa mappa)Viene utilizzato per copiare tutta la coppia chiave-valore da una mappa a un'altra mappa.
Sostituzione V (chiave K, valore V)Sostituisce il valore specificato per una chiave specificata.
sostituzione booleana (chiave K, V vecchioValore, V nuovoValore)Sostituisce il vecchio valore con il nuovo valore per una chiave specificata.
void replaceAll (funzione BiFunction)Sostituisce il valore di ciascuna voce con il risultato dell'invocazione della funzione specificata su quella voce fino a quando tutte le voci non sono state elaborate o la funzione genera un'eccezione.
Mappa secondaria Navigabile(K fromKey, boolean fromInclusive, K toKey, boolean toInclusive)Restituisce coppie chiave-valore le cui chiavi vanno da fromKey a toKey.
Mappa secondaria della mappa ordinata(K fromKey, K toKey)Restituisce coppie chiave-valore le cui chiavi vanno da fromKey, compreso, a toKey, esclusivo.
Mappa ordinata tailMap(K fromKey)Restituisce coppie chiave-valore le cui chiavi sono maggiori o uguali a fromKey.
NavigableMap tailMap(K fromKey, booleano incluso)Restituisce coppie chiave-valore le cui chiavi sono maggiori di (o uguali a, se inclusivo è vero) fromKey.
booleano contieneKey(Chiave oggetto)Restituisce true se la mappa contiene una mappatura per la chiave specificata.
booleano contieneValore(Valore oggetto)Restituisce true se la mappa mappa una o più chiavi al valore specificato.
K primaChiave()Viene utilizzato per restituire la prima chiave (la più bassa) attualmente in questa mappa ordinata.
V get(Chiave oggetto)Viene utilizzato per restituire il valore a cui la mappa mappa la chiave specificata.
K ultimachiave()Viene utilizzato per restituire l'ultima chiave (la più alta) attualmente nella mappa ordinata.
V rimuovi (chiave oggetto)Rimuove dalla mappa la coppia chiave-valore della chiave specificata.
Impostatoset di voci()Restituisce una vista impostata delle mappature contenute nella mappa.
dimensione intera()Restituisce il numero di coppie chiave-valore presenti nella tabella hash.
Valori della raccolta()Restituisce una vista di raccolta dei valori contenuti nella mappa.

Esempio di mappa ad albero Java

 import java.util.*; class TreeMap1{ public static void main(String args[]){ TreeMap map=new TreeMap(); map.put(100,'Amit'); map.put(102,'Ravi'); map.put(101,'Vijay'); map.put(103,'Rahul'); for(Map.Entry m:map.entrySet()){ System.out.println(m.getKey()+' '+m.getValue()); } } } 
 Output:100 Amit 101 Vijay 102 Ravi 103 Rahul 

Esempio di mappa ad albero Java: rimuovi()

 import java.util.*; public class TreeMap2 { public static void main(String args[]) { TreeMap map=new TreeMap(); map.put(100,'Amit'); map.put(102,'Ravi'); map.put(101,'Vijay'); map.put(103,'Rahul'); System.out.println('Before invoking remove() method'); for(Map.Entry m:map.entrySet()) { System.out.println(m.getKey()+' '+m.getValue()); } map.remove(102); System.out.println('After invoking remove() method'); for(Map.Entry m:map.entrySet()) { System.out.println(m.getKey()+' '+m.getValue()); } } } 

Produzione:

cifra romana da 1 a 100
 Before invoking remove() method 100 Amit 101 Vijay 102 Ravi 103 Rahul After invoking remove() method 100 Amit 101 Vijay 103 Rahul 

Esempio di mappa ad albero Java: NavigableMap

 import java.util.*; class TreeMap3{ public static void main(String args[]){ NavigableMap map=new TreeMap(); map.put(100,'Amit'); map.put(102,'Ravi'); map.put(101,'Vijay'); map.put(103,'Rahul'); //Maintains descending order System.out.println('descendingMap: '+map.descendingMap()); //Returns key-value pairs whose keys are less than or equal to the specified key. System.out.println('headMap: '+map.headMap(102,true)); //Returns key-value pairs whose keys are greater than or equal to the specified key. System.out.println('tailMap: '+map.tailMap(102,true)); //Returns key-value pairs exists in between the specified key. System.out.println('subMap: '+map.subMap(100, false, 102, true)); } } 
 descendingMap: {103=Rahul, 102=Ravi, 101=Vijay, 100=Amit} headMap: {100=Amit, 101=Vijay, 102=Ravi} tailMap: {102=Ravi, 103=Rahul} subMap: {101=Vijay, 102=Ravi} 

Esempio di mappa ad albero Java: SortedMap

 import java.util.*; class TreeMap4{ public static void main(String args[]){ SortedMap map=new TreeMap(); map.put(100,'Amit'); map.put(102,'Ravi'); map.put(101,'Vijay'); map.put(103,'Rahul'); //Returns key-value pairs whose keys are less than the specified key. System.out.println('headMap: '+map.headMap(102)); //Returns key-value pairs whose keys are greater than or equal to the specified key. System.out.println('tailMap: '+map.tailMap(102)); //Returns key-value pairs exists in between the specified key. System.out.println('subMap: '+map.subMap(100, 102)); } } 
 headMap: {100=Amit, 101=Vijay} tailMap: {102=Ravi, 103=Rahul} subMap: {100=Amit, 101=Vijay} 

Qual è la differenza tra HashMap e TreeMap?

HashMapMappa ad albero
1) HashMap può contenere una chiave nulla.TreeMap non può contenere alcuna chiave nulla.
2) HashMap non mantiene alcun ordine.TreeMap mantiene l'ordine crescente.

Esempio di mappa ad albero Java: libro

 import java.util.*; class Book { int id; String name,author,publisher; int quantity; public Book(int id, String name, String author, String publisher, int quantity) { this.id = id; this.name = name; this.author = author; this.publisher = publisher; this.quantity = quantity; } } public class MapExample { public static void main(String[] args) { //Creating map of Books Map map=new TreeMap(); //Creating Books Book b1=new Book(101,'Let us C','Yashwant Kanetkar','BPB',8); Book b2=new Book(102,'Data Communications & Networking','Forouzan','Mc Graw Hill',4); Book b3=new Book(103,'Operating System','Galvin','Wiley',6); //Adding Books to map map.put(2,b2); map.put(1,b1); map.put(3,b3); //Traversing map for(Map.Entry entry:map.entrySet()){ int key=entry.getKey(); Book b=entry.getValue(); System.out.println(key+' Details:'); System.out.println(b.id+' '+b.name+' '+b.author+' '+b.publisher+' '+b.quantity); } } } 

Produzione:

 1 Details: 101 Let us C Yashwant Kanetkar BPB 8 2 Details: 102 Data Communications & Networking Forouzan Mc Graw Hill 4 3 Details: 103 Operating System Galvin Wiley 6