La classe Java TreeMap és una implementació basada en arbre vermell-negre. Proporciona un mitjà eficient per emmagatzemar parells clau-valor ordenats.
Els punts importants sobre la classe Java TreeMap són:
- Java TreeMap conté valors basats en la clau. Implementa la interfície NavigableMap i amplia la classe AbstractMap.
- Java TreeMap només conté elements únics.
- Java TreeMap no pot tenir una clau nul·la, però pot tenir diversos valors nuls.
- Java TreeMap no està sincronitzat.
- Java TreeMap manté l'ordre ascendent.
Declaració de classe TreeMap
Vegem la declaració de la classe java.util.TreeMap.
és igual a java
public class TreeMap extends AbstractMap implements NavigableMap, Cloneable, Serializable
Paràmetres de la classe TreeMap
Vegem els paràmetres de la classe java.util.TreeMap.
Constructors de la classe Java TreeMap
Constructor | Descripció |
---|---|
TreeMap() | S'utilitza per construir un mapa d'arbre buit que s'ordenarà mitjançant l'ordre natural de la seva clau. |
TreeMap (comparador comparador) | S'utilitza per construir un mapa buit basat en un arbre que s'ordenarà mitjançant el comparador comp. |
TreeMap(Mapa m) | S'utilitza per inicialitzar un mapa d'arbre amb les entrades de m , que s'ordenaran mitjançant l'ordre natural de les claus. |
TreeMap(Mapa ordenat m) | S'utilitza per inicialitzar un mapa d'arbre amb les entrades del SortedMap sm , que s'ordenaran en el mateix ordre que sm. |
Mètodes de la classe Java TreeMap
Mètode | Descripció |
---|---|
Mapa.Entrada sostreEntrada (tecla K) | Retorna el parell clau-valor que té la clau mínima, superior o igual a la clau especificada, o nul si no hi ha aquesta clau. |
K ceilingKey (tecla K) | Retorna la clau mínima, més gran que la clau especificada o nul·la si no hi ha aquesta clau. |
buit clar () | Elimina tots els parells clau-valor d'un mapa. |
Clon d'objecte() | Retorna una còpia superficial de la instància TreeMap. |
Comparador comparador() | Retorna el comparador que ordena la clau, o nul si el mapa utilitza l'ordenació natural. |
NavigableSet descendingKeySet() | Retorna una vista de NavigableSet d'ordre invers de les claus contingudes al mapa. |
NavigableMap descendingMap() | Retorna els parells clau-valor especificats en ordre descendent. |
Map.Entry firstEntry() | Retorna la parella clau-valor que té la clau mínima. |
Map.Entry floorEntry (clau K) | Retorna la clau més gran, menor o igual que la clau especificada, o nul·la si no hi ha aquesta clau. |
void forEach (acció biconsumidor) | Realitza l'acció donada per a cada entrada del mapa fins que s'han processat totes les entrades o l'acció genera una excepció. |
SortedMap headMap (K toKey) | Retorna els parells clau-valor les claus dels quals són estrictament inferiors a toKey. |
NavigableMap headMap (K toKey, boolean inclòs) | Retorna els parells clau-valor les claus dels quals són inferiors a (o iguals que si l'inclou és cert) a la clau. |
Mapa.Entrada superiorEntrada (clau K) | Retorna la clau mínima estrictament més gran que la clau donada, o nul·la si no hi ha aquesta clau. |
Tecla K superior (tecla K) | S'utilitza per tornar true si aquest mapa conté una assignació per a la clau especificada. |
Estableix keySet() | Retorna la col·lecció de claus existents al mapa. |
Map.Entry lastEntry() | Retorna el parell clau-valor que té la clau més gran, o nul si no hi ha aquesta clau. |
Mapa.Entrada inferiorEntrada (tecla K) | Retorna una assignació clau-valor associada a la clau més gran estrictament inferior a la clau donada, o nul·la si no hi ha aquesta clau. |
K inferior Tecla (tecla K) | Retorna la clau més gran estrictament menys que la clau donada, o nul·la si no hi ha aquesta clau. |
NavigableSet navigableKeySet() | Retorna una vista de NavigableSet de les claus contingudes en aquest mapa. |
Map.Entry pollFirstEntry() | Elimina i retorna una assignació de valor-clau associada a la clau mínima d'aquest mapa, o nul si el mapa està buit. |
Enquesta Map.EntryLastEntry() | Elimina i retorna una assignació de valor-clau associada a la clau més gran d'aquest mapa, o nul si el mapa està buit. |
V posat (clau K, valor V) | Insereix el valor especificat amb la clau especificada al mapa. |
void putAll (mapa del mapa) | S'utilitza per copiar tota la parella clau-valor d'un mapa a un altre. |
Reemplaça V (clau K, valor V) | Substitueix el valor especificat per a una clau especificada. |
substitució booleana (clau K, V valor antic, V valor nou) | Substitueix el valor antic amb el nou valor per a una clau especificada. |
void replaceAll (funció BiFunction) | Substitueix el valor de cada entrada amb el resultat d'invocar la funció donada en aquesta entrada fins que s'hagin processat totes les entrades o la funció llança una excepció. |
Submapa del mapa navegable (K de la clau, booleà de la clau inclosa, la clau de la K, la clau booleana de la inclusió) | Retorna parells clau-valor les claus van des de la clau fins a la clau. |
Submapa del mapa ordenat (K de la clau, K a la clau) | Retorna parells clau-valor les claus van des de la clau, inclosa, fins a la clau, exclusiva. |
SortedMap tailMap (K de la clau) | Retorna parells clau-valor les claus dels quals són superiors o iguals a fromKey. |
NavigableMap tailMap (K de la clau, booleà inclòs) | Retorna parells clau-valor les claus dels quals són més grans que (o iguals a, si l'inclou és cert) de la clau. |
boolean containsKey (clau d'objecte) | Retorna true si el mapa conté una assignació per a la clau especificada. |
boolean containsValue (Valor de l'objecte) | Retorna true si el mapa assigna una o més claus al valor especificat. |
K firstKey() | S'utilitza per retornar la primera clau (la més baixa) actualment en aquest mapa ordenat. |
V get (clau d'objecte) | S'utilitza per retornar el valor al qual el mapa assigna la clau especificada. |
K lastKey() | S'utilitza per retornar l'última clau (la més alta) actualment al mapa ordenat. |
V elimina (clau d'objecte) | Elimina el parell clau-valor de la clau especificada del mapa. |
Conjunt | Retorna una vista conjunta dels mapes continguts al mapa. |
mida int () | Retorna el nombre de parells clau-valor que existeix a la taula hash. |
Valors de la col·lecció() | Retorna una vista de col·lecció dels valors continguts al mapa. |
Exemple de mapa d'arbre de 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
Exemple de mapa d'arbre de Java: remove()
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()); } } }
Sortida:
cadena inversa java
Before invoking remove() method 100 Amit 101 Vijay 102 Ravi 103 Rahul After invoking remove() method 100 Amit 101 Vijay 103 Rahul
Java TreeMap Exemple: 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}
Java TreeMap Exemple: 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}
Quina diferència hi ha entre HashMap i TreeMap?
HashMap | TreeMap |
---|---|
1) HashMap pot contenir una clau nul·la. | TreeMap no pot contenir cap clau nul·la. |
2) HashMap no manté cap ordre. | TreeMap manté l'ordre ascendent. |
Java TreeMap Exemple: llibre
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); } } }
Sortida:
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