TreeMap
Das Beispiel deklariert eine TreeMap und initialisiert sie mit drei Key-Value-Paaren. Hier wurden für beides Strings verwendet.
TreeMap<String, String> tm = new TreeMap<String, String>(); tm.put("2", "Punkt zwei"); tm.put("1", "Punkt eins"); tm.put("3", "Punkt drei"); for (String elem : tm.keySet()) System.out.println(elem + " - " + tm.get(elem));
Sie können jedoch durch andere Referenzdatentypen ersetzt
werden, die jedoch vergleichbar sein müssen, um die
Sortierung zu ermöglichen. Die Vergleichbarkeit regelt das
Interface Comparable
. Ein Beispiel für die
Gewährleistung des Vergleichs von Referenzdatentypen findet
sich im Artikel Objekte
sortieren. Collections können nur Subtypen von Object aufnehmen, akzeptieren beim
Eintrag mit add()
jedoch auch primitive Datentypen,
da diese durch Boxing
in Objekte der jeweiligen Wrapper-Klasse umgewandelt und als
solche gespeichert werden.
TreeMap<Integer, String> tm = new TreeMap<Integer, String>(); tm.put(2, "Punkt zwei"); tm.put(1, "Punkt eins"); tm.put(3, "Punkt drei"); for (Integer elem : tm.keySet()) System.out.println(elem + " - " + tm.get(elem));
Die Schlüssel müssen mit Hilfe der Methoden hashCode()
und equals()
untereinander vergleichbar sein, da im
anderen Fall eine ClassCastException geworfen wird. Der Eintrag
des char
-Keys demonstriert dies. Die Werte
können hingegen beliebigen Datentypen entsprechen, wobei
wie o.a. primitve Datentypen in Objekte gewandelt werden, die
beim Auslesen ggf. entsprechend explizit zurück gecastet
werden müssen.
TreeMap<Object, Object> tm = new TreeMap<Object, Object>(); tm.put("4", "vier"); tm.put("2", new Point(150, 20)); tm.put('c', new Character('c')); // ClassCastException tm.put("3", new int[] { 7, 273, 34 }); for (Object elem : tm1.keySet()) System.out.println(elem + " - " + tm1.get(elem));
Die folgende Tabelle listet einige weitere Methoden von TreeMap
,
deren Funktionalität im nachfolgenden Quelltext
demonstriert wird. Siehe hierzu auch Sammlungen
und Listen → Sammlungen
TreeMap.put(K key, V
value) |
Fügt ein Wertepaar in eine TreeMap ein. Wenn der Key bereits existiert, wird statt dessen der zugehörige Wert überschrieben, sodass ein Key nie doppelt vorhanden sein kann. |
TreeMap.size() |
Gibt die Anzahl der Einträge in einer TreeMap zurück. |
TreeMap.remove(Object key) |
Entfernt den Eintrag mit dem Schlüssel key
aus einer TreeMap.
|
TreeMap.clear() |
Leert eine TreeMap durch Entfernen der Schlüssel. |
import java.util.TreeMap;
public class TreeMapBeispiel {
public static void main(String[] args) {
TreeMap<String, String> tm = new TreeMap<String, String>();
String s;
tm.put("2", "Hund");
tm.put("1", "Katze");
tm.put("3", "Regenwurm");
System.out.println("Durchlauf 1:");
for (String elem : tm.keySet()) {
s = tm.get(elem);
System.out.println(elem + " - " + s);
}
tm.put("1", "Pferd");
System.out.println("\nDurchlauf 2:");
for (String elem : tm.keySet()) {
s = tm.get(elem);
System.out.println(elem + " - " + s);
}
System.out.println("\nKatze vorhanden? " + tm.containsValue("Katze"));
tm.put("4", "Hund");
System.out.println("\nAnzahl Elemente nach einf\u00FCgen von '4': "
+ tm.size());
System.out.println("\nDurchlauf 3:");
for (String elem : tm.keySet()) {
s = tm.get(elem);
System.out.println(elem + " - " + s);
}
tm.remove("4");
System.out.println("\nAnzahl Elemente nach entfernen von '4': "
+ tm.size());
tm.clear();
System.out.println("\nAnzahl Elemente nach clear(): " + tm.size());
}
}
Wenn Ihnen javabeginners.de gefällt, freue ich mich über eine Spende an diese gemeinnützigen Organisationen.