La classe Java TreeMap est une implémentation basée sur une arborescence rouge-noir. Il fournit un moyen efficace de stocker les paires clé-valeur dans un ordre trié.
Les points importants concernant la classe Java TreeMap sont :
- Java TreeMap contient des valeurs basées sur la clé. Il implémente l'interface NavigableMap et étend la classe AbstractMap.
- Java TreeMap ne contient que des éléments uniques.
- Java TreeMap ne peut pas avoir de clé nulle mais peut avoir plusieurs valeurs nulles.
- Java TreeMap n'est pas synchronisé.
- Java TreeMap maintient l'ordre croissant.
Déclaration de classe TreeMap
Voyons la déclaration de la classe java.util.TreeMap.
programme python simple
public class TreeMap extends AbstractMap implements NavigableMap, Cloneable, Serializable
Paramètres de la classe TreeMap
Voyons les paramètres de la classe java.util.TreeMap.
Constructeurs de la classe Java TreeMap
Constructeur | Description |
---|---|
ArbreMap() | Il est utilisé pour construire une arborescence vide qui sera triée selon l'ordre naturel de sa clé. |
TreeMap (Comparateur comparateur) | Il est utilisé pour construire une carte arborescente vide qui sera triée à l'aide du comparateur. |
ArbreMap(Carte m) | Il est utilisé pour initialiser un treemap avec les entrées de m , qui seront triés selon l'ordre naturel des clés. |
TreeMap (Carte triée m) | Il est utilisé pour initialiser un treemap avec les entrées du SortedMap sm , qui sera trié dans le même ordre que sm. |
Méthodes de la classe Java TreeMap
Méthode | Description |
---|---|
Map.Entry CeilingEntry (touche K) | Il renvoie la paire clé-valeur ayant la plus petite clé, supérieure ou égale à la clé spécifiée, ou nulle si une telle clé n'existe pas. |
Clé de plafond K (touche K) | Il renvoie la clé la plus petite, supérieure à la clé spécifiée ou null si une telle clé n'existe pas. |
vide clair() | Il supprime toutes les paires clé-valeur d'une carte. |
Clone d'objet() | Il renvoie une copie superficielle de l'instance TreeMap. |
Comparateur comparateur() | Il renvoie le comparateur qui organise la clé dans l'ordre, ou null si la carte utilise l'ordre naturel. |
NavigableSet descendantKeySet() | Il renvoie une vue NavigableSet dans l'ordre inverse des clés contenues dans la carte. |
NavigableMap descendantMap() | Il renvoie les paires clé-valeur spécifiées par ordre décroissant. |
Map.Entry firstEntry() | Il renvoie la paire clé-valeur ayant le moins de clé. |
Map.Entry floorEntry (touche K) | Il renvoie la plus grande clé, inférieure ou égale à la clé spécifiée, ou null si une telle clé n'existe pas. |
void forEach (action BiConsumer) | Il exécute l'action donnée pour chaque entrée de la carte jusqu'à ce que toutes les entrées aient été traitées ou que l'action lève une exception. |
SortedMap headMap (K toKey) | Il renvoie les paires clé-valeur dont les clés sont strictement inférieures à toKey. |
NavigableMap headMap (K toKey, booléen inclus) | Il renvoie les paires clé-valeur dont les clés sont inférieures (ou égales à si inclusive est vraie) à Key. |
Map.Entry upperEntry (touche K) | Il renvoie la plus petite clé strictement supérieure à la clé donnée, ou null si une telle clé n'existe pas. |
K clé supérieure (touche K) | Il est utilisé pour renvoyer true si cette carte contient un mappage pour la clé spécifiée. |
Définir keySet() | Il renvoie la collection de clés existant dans la carte. |
Map.Entry lastEntry() | Il renvoie la paire clé-valeur ayant la plus grande clé, ou null si une telle clé n'existe pas. |
Map.Entry lowerEntry (touche K) | Il renvoie un mappage clé-valeur associé à la plus grande clé strictement inférieure à la clé donnée, ou nulle si une telle clé n'existe pas. |
K clé inférieure (touche K) | Il renvoie la plus grande clé strictement inférieure à la clé donnée, ou nulle si une telle clé n'existe pas. |
NavigableSet navigableKeySet() | Il renvoie une vue NavigableSet des clés contenues dans cette carte. |
Map.Entry pollFirstEntry() | Il supprime et renvoie un mappage clé-valeur associé à la moindre clé de cette carte, ou null si la carte est vide. |
Map.Entry pollLastEntry() | Il supprime et renvoie un mappage clé-valeur associé à la plus grande clé de cette carte, ou null si la carte est vide. |
V put (clé K, valeur V) | Il insère la valeur spécifiée avec la clé spécifiée dans la carte. |
void putAll (Carte carte) | Il est utilisé pour copier toutes les paires clé-valeur d’une carte vers une autre carte. |
V remplacer (clé K, valeur V) | Il remplace la valeur spécifiée pour une clé spécifiée. |
remplacement booléen (touche K, V oldValue, V newValue) | Il remplace l'ancienne valeur par la nouvelle valeur pour une clé spécifiée. |
void replaceAll (fonction BiFunction) | Il remplace la valeur de chaque entrée par le résultat de l'appel de la fonction donnée sur cette entrée jusqu'à ce que toutes les entrées aient été traitées ou que la fonction lève une exception. |
Sous-carte NavigableMap (K fromKey, boolean fromInclusive, K toKey, boolean toInclusive) | Il renvoie des paires clé-valeur dont les clés vont de fromKey à toKey. |
Sous-carte SortedMap (K fromKey, K toKey) | Il renvoie des paires clé-valeur dont les clés vont de fromKey, inclus, à toKey, exclusif. |
SortedMap tailMap (K fromKey) | Il renvoie des paires clé-valeur dont les clés sont supérieures ou égales à fromKey. |
NavigableMap tailMap (K fromKey, booléen inclus) | Il renvoie des paires clé-valeur dont les clés sont supérieures (ou égales, si inclusive est vraie) fromKey. |
booléen containKey (clé d'objet) | Il renvoie vrai si la carte contient un mappage pour la clé spécifiée. |
booléen containValue (valeur de l'objet) | Il renvoie vrai si la carte mappe une ou plusieurs clés à la valeur spécifiée. |
K premièreClé() | Il est utilisé pour renvoyer la première clé (la plus basse) actuellement dans cette carte triée. |
V obtenir (clé d'objet) | Il est utilisé pour renvoyer la valeur à laquelle la carte mappe la clé spécifiée. |
K dernièreClé() | Il est utilisé pour renvoyer la dernière clé (la plus élevée) actuellement dans la carte triée. |
V supprimer (clé objet) | Il supprime la paire clé-valeur de la clé spécifiée de la carte. |
Ensemble | Il renvoie une vue définie des mappages contenus dans la carte. |
taille int() | Il renvoie le nombre de paires clé-valeur existant dans la table de hachage. |
Valeurs de collection() | Il renvoie une vue de collection des valeurs contenues dans la carte. |
Exemple de TreeMap Java
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
Exemple de TreeMap Java : 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()); } } }
Sortir:
constructeur de chaînes Java
Before invoking remove() method 100 Amit 101 Vijay 102 Ravi 103 Rahul After invoking remove() method 100 Amit 101 Vijay 103 Rahul
Exemple de TreeMap Java : 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}
Exemple de TreeMap Java : 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}
Quelle est la différence entre HashMap et TreeMap ?
Carte de hachage | ArbreCarte |
---|---|
1) HashMap peut contenir une clé nulle. | TreeMap ne peut contenir aucune clé nulle. |
2) HashMap ne maintient aucun ordre. | TreeMap maintient l'ordre croissant. |
Exemple Java TreeMap : livre
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); } } }
Sortir:
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