logo

Classe Java TreeMap

Jerarquia de classes de Java TreeMap

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.

    K: És el tipus de claus que manté aquest mapa.EN: És el tipus de valors assignats.

Constructors de la classe Java TreeMap

ConstructorDescripció
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ètodeDescripció
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.
ConjuntentrySet()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?

HashMapTreeMap
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