Java NavigableMap meistern: Funktionen, Methoden und TreeMap-Implementierung
Java NavigableMap-Interface
Dieses Tutorial erklärt das Java NavigableMap-Interface, seine Kernmethoden und die Nutzung mit TreeMap.
Das NavigableMap-Interface des Java Collections Frameworks bietet Navigationsfähigkeiten über Map-Einträge. Es ist ein spezialisierter SortedMap, der dessen Funktionalität mit Methoden erweitert, die effiziente bidirektionale Traversierung ermöglichen.
Klasse, die NavigableMap implementiert
Da NavigableMap ein Interface ist, können Sie es nicht direkt instanziieren. Die primäre Implementierung ist die TreeMap-Klasse, die eine selbst-balancierende Binär-Suchbaum-Struktur bietet, die Schlüssel in sortierter Reihenfolge hält.

NavigableMap verwenden
Zuerst das Interface importieren:
import java.util.NavigableMap; import java.util.TreeMap;
Dann eine Instanz erstellen:
// NavigableMap-Implementierung durch TreeMap-Klasse NavigableMap<Key, Value> numbers = new TreeMap<>();
Im obigen Code ist numbers ein TreeMap, das Schlüssel-Wert-Paare speichert. Key ist der einzigartige Identifikator, und Value die assoziierten Daten.
Kernmethoden von NavigableMap
Alle SortedMap-Operationen sind verfügbar, aber mehrere werden überschrieben für engere Kontrolle. Wichtige Methoden umfassen:
headMap(key, booleanInclusive)
Gibt View des Map-Teils zurück, dessen Keys strikt kleiner als key sind, wenn booleanInclusive false ist (Default). Falls booleanInclusive true ist, enthält die zurückgegebene Map den Eintrag für key.
tailMap(key, booleanInclusive)
Gibt View des Map-Teils zurück, dessen Keys größer oder gleich key sind, wenn booleanInclusive true ist (Default). Übergeben von false schließt den key-Eintrag aus.
subMap(fromKey, fromInclusive, toKey, toInclusive)
Bietet View zwischen fromKey und toKey. Defaults sind fromInclusive = true und toInclusive = false. Anpassen dieser Flags kontrolliert, ob Grenzschlüssel Teil der resultierenden Map sind.
Zusätzliche Navigationsmethoden
- descendingMap() – kehrt Eintragsreihenfolge um.
- descendingKeySet() – umgekehrte Key-View.
- ceilingEntry(key) – niedrigster Eintrag mit Key >= gegebenem Key.
- ceilingKey(key) – niedrigster Key >= gegebenem Key.
- floorEntry(key) – höchster Eintrag mit Key <= gegebenem Key.
- floorKey(key) – höchster Key <= gegebenem Key.
- higherEntry(key) – niedrigster Eintrag mit Key > gegebenem Key.
- higherKey(key) – niedrigster Key > gegebenem Key.
- lowerEntry(key) – höchster Eintrag mit Key < gegebenem Key.
- lowerKey(key) – höchster Key < gegebenem Key.
- firstEntry() – Eintrag mit kleinstem Key.
- lastEntry() – Eintrag mit größtem Key.
- pollFirstEntry() – ruft ersten Eintrag ab und entfernt ihn.
- pollLastEntry() – ruft letzten Eintrag ab und entfernt ihn.
Für die offizielle Spezifikation siehe die Java NavigableMap Dokumentation.
TreeMap-Implementierungsbeispiel
import java.util.NavigableMap; import java.util.TreeMap; class Main { public static void main(String[] args) { // NavigableMap mit TreeMap erstellen NavigableMap<String, Integer> numbers = new TreeMap<>(); // Elemente in Map einfügen numbers.put("Two", 2); numbers.put("One", 1); numbers.put("Three", 3); System.out.println("NavigableMap: " + numbers); // Ersten Eintrag der Map abrufen System.out.println("First Entry: " + numbers.firstEntry()); // Letzten Eintrag der Map abrufen System.out.println("Last Entry: " + numbers.lastEntry()); // Ersten Eintrag aus Map entfernen System.out.println("Removed First Entry: " + numbers.pollFirstEntry()); // Letzten Eintrag aus Map entfernen System.out.println("Removed Last Entry: " + numbers.pollLastEntry()); } }
Ausgabe
NavigableMap: {One=1, Three=3, Two=2} First Entry: One=1 Last Entry: Two=2 Removed First Entry: One=1 Removed Last Entry: Two=2
Mehr über TreeMap in der Java TreeMap Dokumentation.
Mit solidem Verständnis des NavigableMap-Interfaces und seiner TreeMap-Implementierung können Sie effiziente, sortierte Datenstrukturen für Ihre Java-Anwendungen bauen.
Java
- C#-Interfaces meistern: Definition, Implementierung und praktische Anwendungsfälle
- Java Operatoren meistern: Typen, Syntax und praktische Beispiele
- Java-Schnittstellen meistern: Konzepte, Implementierung und Best Practices
- Java Try-With-Resources meistern: Automatisches Ressourcenmanagement erklärt
- Java NavigableSet Interface meistern: Navigation, Sortierung und praktische Beispiele
- Java Lambda Expressions meistern: Von Grundlagen bis Stream API
- Interface vs. Abstrakte Klasse in Java: Die richtige Abstraktion wählen
- Java Interfaces verstehen: Definitionen, Verwendung und Best Practices
- Java 9 Private Interface Methods: Bessere Kapselung & Code-Wiederverwendung
- Java Logging Best Practices: Effizientes Log-Management für zuverlässigen Code