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.
Costruttori della classe Java TreeMap
Costruttore | Descrizione |
---|---|
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
Metodo | Descrizione |
---|---|
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. |
Impostato | 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?
HashMap | Mappa 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