Maîtriser Java NavigableMap : Fonctionnalités, Méthodes et Implémentation TreeMap
Interface Java NavigableMap
Ce tutoriel explique l'interface Java NavigableMap, ses méthodes principales et comment l'utiliser avec TreeMap.
L'interface NavigableMap du framework de collections Java fournit des capacités de navigation à travers les entrées de map. C'est un SortedMap spécialisé, étendant sa fonctionnalité avec des méthodes permettant un parcours bidirectionnel efficace.
Classe Implémentant NavigableMap
Puisque NavigableMap est une interface, vous ne pouvez pas l'instancier directement. L'implémentation principale est la classe TreeMap, qui offre une structure d'arbre binaire de recherche auto-équilibré maintenant les clés dans l'ordre trié.
Comment Utiliser NavigableMap
Importez d'abord l'interface :
import java.util.NavigableMap;
import java.util.TreeMap;
Puis créez une instance :
// Implémentation NavigableMap par la classe TreeMap
NavigableMap<Key, Value> numbers = new TreeMap<>();
Dans le code ci-dessus, numbers est un TreeMap stockant des paires clé-valeur. Key est l'identifiant unique, et Value est la donnée associée.
Méthodes Principales de NavigableMap
Toutes les opérations SortedMap sont disponibles, mais plusieurs sont surchargées pour fournir un contrôle plus fin. Méthodes clés incluent :
headMap(key, booleanInclusive)
Retourne une vue de la portion de la map dont les clés sont strictement inférieures à key quand booleanInclusive est false (défaut). Si booleanInclusive est true, la map retournée inclut l'entrée pour key.
tailMap(key, booleanInclusive)
Retourne une vue de la portion de la map dont les clés sont supérieures ou égales à key quand booleanInclusive est true (défaut). Passer false exclut l'entrée key.
subMap(fromKey, fromInclusive, toKey, toInclusive)
Fournit une vue entre fromKey et toKey. Les défauts sont fromInclusive = true et toInclusive = false. Ajuster ces drapeaux contrôle si les clés limites font partie de la map résultante.
Méthodes de Navigation Supplémentaires
- descendingMap() – inverse l'ordre des entrées.
- descendingKeySet() – vue des clés inversée.
- ceilingEntry(key) – entrée la plus basse avec clé >= clé donnée.
- ceilingKey(key) – clé la plus basse >= clé donnée.
- floorEntry(key) – entrée la plus haute avec clé <= clé donnée.
- floorKey(key) – clé la plus haute <= clé donnée.
- higherEntry(key) – entrée la plus basse avec clé > clé donnée.
- higherKey(key) – clé la plus basse > clé donnée.
- lowerEntry(key) – entrée la plus haute avec clé < clé donnée.
- lowerKey(key) – clé la plus haute < clé donnée.
- firstEntry() – entrée avec la plus petite clé.
- lastEntry() – entrée avec la plus grande clé.
- pollFirstEntry() – récupère et supprime la première entrée.
- pollLastEntry() – récupère et supprime la dernière entrée.
Pour la spécification officielle, voir la documentation Java NavigableMap.
Exemple d'Implémentation TreeMap
import java.util.NavigableMap;
import java.util.TreeMap;
class Main {
public static void main(String[] args) {
// Création NavigableMap utilisant TreeMap
NavigableMap<String, Integer> numbers = new TreeMap<>();
// Insérer des éléments dans la map
numbers.put("Two", 2);
numbers.put("One", 1);
numbers.put("Three", 3);
System.out.println("NavigableMap: " + numbers);
// Accéder à la première entrée de la map
System.out.println("Première Entrée: " + numbers.firstEntry());
// Accéder à la dernière entrée de la map
System.out.println("Dernière Entrée: " + numbers.lastEntry());
// Supprimer la première entrée de la map
System.out.println("Première Entrée Supprimée: " + numbers.pollFirstEntry());
// Supprimer la dernière entrée de la map
System.out.println("Dernière Entrée Supprimée: " + numbers.pollLastEntry());
}
}
Sortie
NavigableMap: {One=1, Three=3, Two=2} Première Entrée: One=1 Dernière Entrée: Two=2 Première Entrée Supprimée: One=1 Dernière Entrée Supprimée: Two=2
En savoir plus sur TreeMap dans la documentation Java TreeMap.
Avec une solide compréhension de l'interface NavigableMap et son implémentation TreeMap, vous pouvez construire des structures de données triées efficaces pour vos applications Java.
Java
- Maîtriser les interfaces C# : Définition, implémentation et cas d'utilisation pratiques
- Maîtriser les opérateurs Java : Types, syntaxe et exemples pratiques
- Maîtriser les interfaces Java : concepts, implémentation et bonnes pratiques
- Maîtriser le try-with-resources Java : gestion automatique des ressources expliquée
- Maîtriser l'interface NavigableSet de Java : Navigation, tri et exemples pratiques
- Maîtriser les expressions lambda Java : Des bases à l'API Stream
- Interface vs Classe Abstraite en Java : Comment Choisir la Bonne Abstraction
- Comprendre les interfaces Java : Définitions, Usages et Bonnes pratiques
- Java 9 : Méthodes privées dans les interfaces — Encapsulation et réutilisation