Einführung
Die TreeMap-Klasse in Java ist ein Teil der Java Collection-Schnittstelle und implementiert die Map-Schnittstelle. Sie speichert die Schlüssel-Wert-Paare in aufsteigender Reihenfolge, im Gegensatz zu anderen Map-Implementierungen. In diesem Lab werden Sie lernen, wie Sie die TreeMap-Klasse effektiv in Ihren Java-Programmen verwenden.
Erstellen einer TreeMap
- Öffnen Sie Ihren Texteditor und erstellen Sie eine neue Datei namens
TreeMapDemo.javaim Verzeichnis~/project. - Importieren Sie die erforderlichen Pakete:
import java.util.Comparator;
import java.util.Map;
import java.util.TreeMap;
- Erstellen Sie ein TreeMap-Objekt:
Map<Integer, String> map = new TreeMap<>();
Hinzufügen von Elementen zur TreeMap
- Verwenden Sie die
put()-Methode, um Elemente zurTreeMaphinzuzufügen:
map.put(1, "John");
map.put(2, "Mary");
map.put(3, "Peter");
Fügen Sie diesen Code innerhalb der main-Methode hinzu.
Ausgeben der TreeMap
- Verwenden Sie eine for-each-Schleife, um durch die
TreeMapzu iterieren:
for(Map.Entry<Integer, String> entry : map.entrySet()) {
System.out.println(entry.getKey() + " " + entry.getValue());
}
Verwendung von benutzerdefiniertem Sortieren
- Erstellen Sie eine neue Klasse namens
Employee:
class Employee implements Comparable<Employee> {
private int id;
private String name;
public Employee(int id, String name) {
this.id = id;
this.name = name;
}
public int getId() {
return id;
}
public String getName() {
return name;
}
@Override
public int compareTo(Employee e) {
return this.id - e.getId();
}
}
- Fügen Sie einige
Employee-Objekte zurTreeMaphinzu:
Map<Employee, String> employeeMap = new TreeMap<>();
employeeMap.put(new Employee(3, "John"), "IT");
employeeMap.put(new Employee(2, "Mary"), "HR");
employeeMap.put(new Employee(1, "Peter"), "Finance");
- Wenn Sie jetzt durch die
TreeMapiterieren, wird sie basierend auf der Mitarbeiter-ID sortiert:
for(Map.Entry<Employee, String> entry : employeeMap.entrySet()) {
System.out.println(entry.getKey().getId() + " "
+ entry.getKey().getName() + " "
+ entry.getValue());
}
Verwendung von Vergleichern zum Sortieren
- Definieren Sie einen benutzerdefinierten Vergleicher in Ihrer
TreeMapDemo-Klasse:
class DescendingOrder implements Comparator<Integer> {
@Override
public int compare(Integer o1, Integer o2) {
return o2 - o1;
}
}
- Erstellen Sie ein neues
TreeMap-Objekt mit dem benutzerdefinierten Vergleicher:
Map<Integer, String> treeMap = new TreeMap<>(new DescendingOrder());
treeMap.put(1, "John");
treeMap.put(4, "Mary");
treeMap.put(2, "Peter");
- Wenn Sie jetzt durch das
TreeMapiterieren, wird es in absteigender Reihenfolge sortiert:
for(Map.Entry<Integer, String> entry : treeMap.entrySet()) {
System.out.println(entry.getKey() + " " + entry.getValue());
}
Zugreifen auf Map-Elemente
- Verwenden Sie die
get()-Methode, um auf ein bestimmtes Element zuzugreifen:
String name = map.get(1);
System.out.println("Name is " + name);
Entfernen von Map-Elementen
- Verwenden Sie die
remove()-Methode, um ein bestimmtes Element zu entfernen:
String removedName = map.remove(2);
System.out.println("Removed: " + removedName);
Abrufen der Map-Größe
- Verwenden Sie die
size()-Methode, um die Anzahl der Elemente in derTreeMapabzurufen:
int size = map.size();
System.out.println(size);
Abrufen der ersten und letzten Elemente
- Verwenden Sie die
firstKey()- undlastKey()-Methoden, um das erste und das letzte Element in derTreeMapabzurufen:
int firstKey = map.firstKey();
int lastKey = map.lastKey();
Abrufen eines Bereichs von Elementen
- Verwenden Sie die
subMap()-Methode, um einen Bereich von Elementen abzurufen:
Map<Integer, String> rangeMap = map.subMap(1, 3);
for(Map.Entry<Integer, String> entry : rangeMap.entrySet()) {
System.out.println(entry.getKey() + " " + entry.getValue());
}
Kompiliere und führe das Programm aus
- Öffnen Sie Ihren Terminal und navigieren Sie zum Verzeichnis
~/project. - Kompilieren Sie die Datei
TreeMapDemo.javamit dem Befehljavac:
javac TreeMapDemo.java
- Führen Sie das Programm mit dem Befehl
javaaus:
java TreeMapDemo
Zusammenfassung
In diesem Lab haben Sie über die TreeMap-Klasse in Java gelernt und erfahren, wie Sie sie effektiv in Ihren Programmen verwenden können. Sie haben gelernt, wie Sie eine TreeMap erstellen, Elemente hinzufügen und entfernen und Elemente basierend auf bestimmten Kriterien abrufen. Sie haben auch gelernt, wie Sie die Sortierreihenfolge mit Hilfe von Comparators anpassen können. Die TreeMap-Klasse bietet eine große Flexibilität und Kontrolle bei der Sortierung und Speicherung von Schlüssel-Wert-Paaren.



