Die Java TreeMap-Klasse ist eine auf einem Rot-Schwarz-Baum basierende Implementierung. Es bietet eine effiziente Möglichkeit, Schlüssel-Wert-Paare in sortierter Reihenfolge zu speichern.
Die wichtigen Punkte zur Java TreeMap-Klasse sind:
- Java TreeMap enthält Werte basierend auf dem Schlüssel. Es implementiert die NavigableMap-Schnittstelle und erweitert die AbstractMap-Klasse.
- Java TreeMap enthält nur eindeutige Elemente.
- Java TreeMap kann keinen Nullschlüssel, aber mehrere Nullwerte haben.
- Java TreeMap ist nicht synchronisiert.
- Java TreeMap behält die aufsteigende Reihenfolge bei.
Deklaration der TreeMap-Klasse
Sehen wir uns die Deklaration für die Klasse java.util.TreeMap an.
Schauspieler Rekha
public class TreeMap extends AbstractMap implements NavigableMap, Cloneable, Serializable
Parameter der TreeMap-Klasse
Sehen wir uns die Parameter für die Klasse java.util.TreeMap an.
Konstruktoren der Java TreeMap-Klasse
Konstrukteur | Beschreibung |
---|---|
TreeMap() | Es wird verwendet, um eine leere Baumkarte zu erstellen, die anhand der natürlichen Reihenfolge ihres Schlüssels sortiert wird. |
TreeMap (Komparator Komparator) | Es wird verwendet, um eine leere baumbasierte Karte zu erstellen, die mithilfe des Komparators comp sortiert wird. |
TreeMap(Karte m) | Es wird verwendet, um eine Baumkarte mit den Einträgen von zu initialisieren M , die nach der natürlichen Reihenfolge der Schlüssel sortiert wird. |
TreeMap(SortedMap m) | Es wird verwendet, um eine Treemap mit den Einträgen aus der SortedMap zu initialisieren sm , die in der gleichen Reihenfolge sortiert werden wie sm. |
Methoden der Java TreeMap-Klasse
Methode | Beschreibung |
---|---|
Map.Entry surfaceEntry(K-Taste) | Es gibt das Schlüssel-Wert-Paar mit dem kleinsten Schlüssel zurück, der größer oder gleich dem angegebenen Schlüssel ist, oder null, wenn kein solcher Schlüssel vorhanden ist. |
K-Deckenschlüssel (K-Schlüssel) | Es gibt den kleinsten Schlüssel zurück, der größer als der angegebene Schlüssel ist, oder null, wenn kein solcher Schlüssel vorhanden ist. |
void klar() | Es entfernt alle Schlüssel-Wert-Paare aus einer Karte. |
Objektklon() | Es gibt eine flache Kopie der TreeMap-Instanz zurück. |
Komparator Komparator() | Es gibt den Komparator zurück, der den Schlüssel in der richtigen Reihenfolge anordnet, oder null, wenn die Karte die natürliche Reihenfolge verwendet. |
NavigableSet descendingKeySet() | Es gibt eine NavigableSet-Ansicht in umgekehrter Reihenfolge der in der Karte enthaltenen Schlüssel zurück. |
NavigableMap absteigendeMap() | Es gibt die angegebenen Schlüssel-Wert-Paare in absteigender Reihenfolge zurück. |
Map.Entry firstEntry() | Es gibt das Schlüssel-Wert-Paar mit dem kleinsten Schlüssel zurück. |
Map.Entry floorEntry(K-Taste) | Es gibt den größten Schlüssel zurück, der kleiner oder gleich dem angegebenen Schlüssel ist, oder null, wenn kein solcher Schlüssel vorhanden ist. |
void forEach(BiConsumer-Aktion) | Es führt die angegebene Aktion für jeden Eintrag in der Karte aus, bis alle Einträge verarbeitet wurden oder die Aktion eine Ausnahme auslöst. |
SortedMap headMap(K toKey) | Es gibt die Schlüssel-Wert-Paare zurück, deren Schlüssel strikt kleiner als toKey sind. |
NavigableMap headMap(K toKey, boolean inklusive) | Es gibt die Schlüssel-Wert-Paare zurück, deren Schlüssel kleiner als (oder gleich, wenn inklusive wahr ist) toKey sind. |
Map.EntryhigherEntry(K-Taste) | Es gibt den kleinsten Schlüssel zurück, der strikt größer als der angegebene Schlüssel ist, oder null, wenn kein solcher Schlüssel vorhanden ist. |
K höherSchlüssel(K-Taste) | Es wird verwendet, um „true“ zurückzugeben, wenn diese Karte eine Zuordnung für den angegebenen Schlüssel enthält. |
setze keySet() | Es gibt die Sammlung der in der Karte vorhandenen Schlüssel zurück. |
Map.Entry lastEntry() | Es gibt das Schlüssel-Wert-Paar mit dem größten Schlüssel zurück oder null, wenn kein solcher Schlüssel vorhanden ist. |
Map.Entry LowerEntry(K-Taste) | Es gibt eine Schlüssel-Wert-Zuordnung zurück, die dem größten Schlüssel zugeordnet ist, der strikt kleiner als der angegebene Schlüssel ist, oder null, wenn kein solcher Schlüssel vorhanden ist. |
K LowerKey (K-Taste) | Es gibt den größten Schlüssel zurück, der strikt kleiner als der angegebene Schlüssel ist, oder null, wenn es keinen solchen Schlüssel gibt. |
NavigableSet navigableKeySet() | Es gibt eine NavigableSet-Ansicht der in dieser Karte enthaltenen Schlüssel zurück. |
Map.Entry pollFirstEntry() | Es entfernt eine Schlüssel-Wert-Zuordnung, die dem kleinsten Schlüssel in dieser Zuordnung zugeordnet ist, und gibt sie zurück, oder null, wenn die Zuordnung leer ist. |
Map.Entry pollLastEntry() | Es entfernt eine Schlüssel-Wert-Zuordnung, die dem größten Schlüssel in dieser Zuordnung zugeordnet ist, und gibt sie zurück, oder null, wenn die Zuordnung leer ist. |
V put(K-Taste, V-Wert) | Es fügt den angegebenen Wert mit dem angegebenen Schlüssel in die Karte ein. |
void putAll(Map Karte) | Es wird verwendet, um alle Schlüssel-Wert-Paare von einer Karte auf eine andere Karte zu kopieren. |
V ersetzen (K-Taste, V-Wert) | Es ersetzt den angegebenen Wert für einen angegebenen Schlüssel. |
boolescher Ersatz (K-Taste, V alter Wert, V neuer Wert) | Es ersetzt den alten Wert durch den neuen Wert für einen angegebenen Schlüssel. |
void replaceAll(BiFunction-Funktion) | Der Wert jedes Eintrags wird durch das Ergebnis des Aufrufs der angegebenen Funktion für diesen Eintrag ersetzt, bis alle Einträge verarbeitet wurden oder die Funktion eine Ausnahme auslöst. |
NavigableMap subMap(K fromKey, boolean fromInclusive, K toKey, boolean toInclusive) | Es werden Schlüssel-Wert-Paare zurückgegeben, deren Schlüssel von fromKey bis toKey reichen. |
SortedMap subMap(K fromKey, K toKey) | Es werden Schlüssel-Wert-Paare zurückgegeben, deren Schlüssel von fromKey (inklusive) bis toKey (exklusiv) reichen. |
SortedMap tailMap(K fromKey) | Es werden Schlüssel-Wert-Paare zurückgegeben, deren Schlüssel größer oder gleich fromKey sind. |
NavigableMap tailMap(K fromKey, boolean inklusive) | Es werden Schlüssel-Wert-Paare zurückgegeben, deren Schlüssel größer als (oder gleich, wenn inklusive wahr ist) fromKey sind. |
boolescher Wert enthältSchlüssel(Objektschlüssel) | Es gibt „true“ zurück, wenn die Karte eine Zuordnung für den angegebenen Schlüssel enthält. |
boolescher Wert enthältWert(Objektwert) | Es gibt „true“ zurück, wenn die Karte einen oder mehrere Schlüssel dem angegebenen Wert zuordnet. |
K firstKey() | Es wird verwendet, um den ersten (niedrigsten) Schlüssel zurückzugeben, der sich derzeit in dieser sortierten Karte befindet. |
V get(Objektschlüssel) | Es wird verwendet, um den Wert zurückzugeben, dem die Karte den angegebenen Schlüssel zuordnet. |
K lastKey() | Es wird verwendet, um den letzten (höchsten) Schlüssel zurückzugeben, der sich derzeit in der sortierten Karte befindet. |
V entfernen(Objektschlüssel) | Es entfernt das Schlüssel-Wert-Paar des angegebenen Schlüssels aus der Karte. |
Satz | Es gibt eine festgelegte Ansicht der in der Karte enthaltenen Zuordnungen zurück. |
int size() | Es gibt die Anzahl der Schlüssel-Wert-Paare zurück, die in der Hashtabelle vorhanden sind. |
Sammlungswerte() | Es gibt eine Sammlungsansicht der in der Karte enthaltenen Werte zurück. |
Java TreeMap-Beispiel
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
Java TreeMap-Beispiel: 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()); } } }
Ausgabe:
Typoskript-foreach-Schleife
Before invoking remove() method 100 Amit 101 Vijay 102 Ravi 103 Rahul After invoking remove() method 100 Amit 101 Vijay 103 Rahul
Java TreeMap-Beispiel: 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-Beispiel: 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}
Was ist der Unterschied zwischen HashMap und TreeMap?
HashMap | TreeMap |
---|---|
1) HashMap kann einen Nullschlüssel enthalten. | TreeMap darf keinen Nullschlüssel enthalten. |
2) HashMap behält keine Reihenfolge bei. | TreeMap behält die aufsteigende Reihenfolge bei. |
Java TreeMap-Beispiel: Buch
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); } } }
Ausgabe:
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