treemap java tutorial with java treemap examples
Ce didacticiel Java TreeMap traite de la classe TreeMap, de l'itération, des exemples TreeMap, de l'implémentation, de Java Hashmap vs Treemap, des méthodes de l'API TreeMap, etc.:
Une structure de données TreeMap est une collection qui stocke des paires clé-valeur dans un ordre naturellement trié. Un TreeMap fait partie du Java Collections Framework et est une implémentation de carte.
=> Consultez TOUS les didacticiels Java ici.
Ce que vous apprendrez:
TreeMap Java
Certaines des principales caractéristiques de TreeMap en Java sont les suivantes:
- La classe TreeMap qui implémente treemap en Java fait partie du package java.util. Il implémente l'interface Map.
- La classe TreeMap étend la classe AbstractMap et implémente également l'interface NavigableMap et SortedMap (indirectement).
- TreeMap n'est pas synchronisé.
- Par défaut, les éléments TreeMap sont par défaut dans l'ordre croissant.
- TreeMap n'autorise pas les éléments en double.
- TreeMap autorise les valeurs nulles mais pas les clés nulles.
Le diagramme ci-dessous montre la hiérarchie des classes pour la classe TreeMap.
Comme déjà mentionné, la classe TreeMap implémente une interface NavigableMap qui à son tour étend la classe SortedMap. SortedMap hérite en outre de l'interface de la carte.
Déclaration de classe TreeMap
La déclaration générale de la classe TreeMap est donnée ci-dessous:
public class TreeMap extends AbstractMap implements NavigableMap, Cloneable, Serializable
où K => type de clés gérées par TreeMap
V => type des valeurs mappées
Exemple TreeMap
Le programme ci-dessous montre un exemple simple de structure de données TreeMap.
import java.util.*; class Main{ public static void main(String args()){ //declare a TreeMap and initialize it TreeMap cities_map=new TreeMap (); cities_map.put(100,'Pune'); cities_map.put(102,'Jaipur'); cities_map.put(101,'Hyderabad'); cities_map.put(103,'Bangaluru'); //print the TreeMap contents using forEach System.out.println('Contents of TreeMap:'); System.out.print('{'); for(Map.Entry entries:cities_map.entrySet()){ System.out.print(entries.getKey()+' = '+entries.getValue() + ' '); } System.out.println('}'); } }
Production:
Contenu de TreeMap:
{100 = Pune 101 = Hyderabad 102 = Jaipur 103 = Bangaluru}
Dans ce programme, nous avons défini un objet TreeMap simple nommé, cities_map, puis en utilisant la méthode put, nous l'avons initialisé en paires clé-valeur.
Ensuite, nous utilisons la méthode entrySet () de la classe TreeMap et itérons sur cet ensemble en utilisant une boucle forEach pour imprimer les paires clé-valeur. Pour imprimer des paires clé-valeur, nous utilisons respectivement les méthodes getKey () et getValue ().
quel est le meilleur service de messagerie à utiliser
Méthodes et constructeurs de l'API TreeMap
Dans cette section, nous discuterons des différents constructeurs et méthodes fournis par la classe TreeMap.
Constructeurs
Prototype de constructeur | Description | |
---|---|---|
descendingMap | NavigableMap descendingMap () | Renvoie les paires clé-valeur données dans l'ordre inverse. |
TreeMap () | Constructeur par défaut pour créer un TreeMap vide avec un ordre naturel. | |
TreeMap (comparateur de comparaison) | Construit un TreeMap vide qui est trié en fonction du comparateur spécifié. | |
TreeMap (Carte m) | Construit un TreeMap et l'initialise avec les éléments de la carte spécifiée, m. La commande est naturelle. | |
TreeMap (SortedMap m) | Construit un TreeMap et l'initialise avec des entrées SortedMap. L'ordre est le même que sortedMap. |
Méthodes
Méthode | Prototype de méthode | Description |
---|---|---|
plafond | Carte Entrée au plafond Entrée (touche K) | Renvoie la plus petite paire clé-valeur telle que la clé soit supérieure ou égale à la clé spécifiée; null s'il n'y a pas de clé |
plafond | Clé de plafond K (touche K) | Renvoie la clé la plus petite et supérieure à la clé donnée; renvoie null si aucune clé. |
dégager | vide clair () | Supprime toutes les paires clé-valeur du Treemap. |
cloner | Clone d'objet () | Crée une copie superficielle de l'instance TreeMap. |
comparateur | Comparateur comparateur () | Renvoie un comparateur utilisé pour organiser les clés. null si la commande est naturelle |
descendingKeySet | NavigableSet descendingKeySet () | Renvoie la vue NavigableSet des clés TreeMap dans l'ordre inverse. |
firstEntry | Map.Entry firstEntry () | Renvoie la moindre paire clé-valeur. |
étage | Map.Entry floorEntry (touche K) | Renvoie la plus grande clé qui est inférieure ou égale à une clé donnée; null si aucune clé de ce type |
pour chaque | void forEach (action BiConsumer) | L'action donnée est effectuée pour chaque entrée dans TreeMap. |
headMap | SortedMap headMap (K toKey) | Utilisé pour renvoyer une paire clé-valeur telle que la clé retournée soit strictement inférieure à toKey |
headMap | NavigableMap headMap (K toKey, booléen inclus) | Renvoie les paires clé-valeur de ces clés qui sont inférieures à toKey ou égales à si elles sont incluses. |
entrée supérieure | Map.Entry HigherEntry (touche K) | Renvoie la moindre clé ou null. La clé retournée est strictement supérieure à la clé donnée. |
HigherKey | K clé supérieure (touche K) | Renvoie la clé si le mappage est présent pour la clé donnée dans le Treemap. |
keySet | Définir keySet () | Renvoie la collection définie des clés dans TreeMap. |
dernière entrée | Map.Entry lastEntry () | Renvoie la paire clé-valeur telle que la clé est la plus grande clé. Renvoie null si la clé n'existe pas. |
LowerEntry | Map.Entry LowerEntry (touche K) | Renvoie la paire clé-valeur telle que la clé est la plus grande et strictement inférieure à la clé donnée. Renvoie null si la clé n'existe pas. |
lowerKey | K touche inférieure (touche K) | Renvoie la plus grande clé ou null. La clé retournée est strictement inférieure à la clé donnée. |
navigableKeySet | NavigableSet navigableKeySet () | Renvoie le ‘NavigableSet’ de clés dans TreeMap. |
pollFirstEntry | Map.Entry pollFirstEntry () | Supprime, puis renvoie la paire clé-valeur de la moindre clé. |
pollLastEntry | Map.Entry pollLastEntry () | Supprime et renvoie la plus grande paire clé-valeur de la clé. |
mettre | V put (clé K, valeur V) | Ajoute la clé et la valeur données à TreeMap. |
Met tout | void putAll (Carte carte) | Toutes les paires clé-valeur de la carte donnée sont copiées dans le TreeMap. |
remplacer | V remplacer (clé K, valeur V) | Remplace ou modifie la valeur de la clé donnée par la valeur donnée. |
remplacer | boolean replace (clé K, V oldValue, V newValue) | Remplace oldValue de la clé donnée par newValue. |
remplace tout | void replaceAll (fonction BiFonction) | Appelle la fonction donnée et remplace toutes les entrées par le résultat de la fonction. |
sous-carte | NavigableMap subMap (K fromKey, boolean fromInclusive, K toKey, boolean toInclusive) | Renvoie les paires clé-valeur de clés de «fromKey» à «toKey». |
SortedMap | Sous-carte SortedMap (K fromKey, K toKey) | Renvoie des paires clé-valeur pour la plage fromKey (inclus) à toKey (exclusif). |
tailMap | SortedMap tailMap (K fromKey) | Renvoie des paires clé-valeur telles que les clés sont supérieures ou égales à fromKey. |
tailMap | NavigableMap tailMap (K fromKey, booléen inclus) | Renvoie des paires clé-valeur pour les clés égales à fromKey (inclusive = true) ou supérieures à fromKey. |
contientKey | boolean containsKey (clé d'objet) | Vérifie s'il existe un mappage pour la clé donnée dans le Treemap. Renvoie vrai si oui. |
contientValeur | boolean containsValue (valeur de l'objet) | Vérifie s'il existe une clé mappée avec la valeur donnée. Renvoie oui si vrai. |
firstKey | K firstKey () | Renvoie la clé la plus basse ou la première clé de la carte triée |
obtenir | V get (clé d'objet) | Récupère la valeur mappée à la clé donnée |
lastKey | K lastKey () | Renvoie la dernière clé ou la clé la plus élevée de la carte triée. |
supprimer | V remove (clé d'objet) | Supprime la paire clé-valeur pour la clé donnée dans TreeMap |
entrySet | Ensemble | Renvoie l'ensemble pour le TreeMap donné. |
Taille | taille int () | Renvoie la taille ou le nombre total de paires clé-valeur dans TreeMap. |
valeurs | Valeurs de collection () | Renvoie la collection des valeurs de TreeMap. |
Itérer dans TreeMap
TreeMap se compose de paires clé-valeur. La classe TreeMap fournit une méthode «entrySet» qui renvoie des paires clé-valeur dans la carte. Nous pouvons parcourir ces entrées en utilisant la boucle forEach et afficher les clés et les valeurs en utilisant respectivement les méthodes getKey () et getValue ().
Ceci est montré dans le programme Java ci-dessous:
import java.util.Map; import java.util.TreeMap; class Main { public static void main(String() arg){ //declare and initialize TreeMap Map colorsTree = new TreeMap(); colorsTree.put('R', 'Red'); colorsTree.put('G', 'Green'); colorsTree.put('B', 'Blue'); colorsTree.put('M', 'Magenta'); System.out.println('The contents of TreeMap:'); // retrieve set of map entries using entrySet method for (Map.Entry Map_entry : colorsTree.entrySet()) //print key-value pairs using getKey() and getValue() System.out.println( '(' + Map_entry.getKey() + '=>' + Map_entry.getValue() + ')'); } }
Production:
Le contenu de TreeMap:
(B => Bleu)
(G => Vert)
(M => Magenta)
(R => Rouge)
Implémentation TreeMap en Java
Le programme Java suivant illustre la méthode principale de la classe TreeMap décrite ci-dessus.
import java.util.Map; import java.util.Map.Entry; import java.util.TreeMap; public class Main { public static void main(String() args) { //declare a TreeMap Object and initialize it with values TreeMap map = new TreeMap<>(); for(int i=1;i<=10;i++) { map.put(i, (i*i)+''); } System.out.println('Original Map:' + map); //lowerEntry, higherEntry Entry entry = map.lowerEntry(4); System.out.println('Closest Lower Entry than 4:'+entry); entry = map.higherEntry(4); System.out.println('Closest Higher Entry than 4:'+entry); System.out.println('Closest Lower key than 4 :'+map.lowerKey(4)); entry = map.floorEntry(6); System.out.println('Closest floor entry than 6: '+entry); entry = map.ceilingEntry(6); System.out.println('Closest ceiling Entry than 6 :'+entry); entry = map.firstEntry(); System.out.println('TreeMap First Entry:'+entry); entry = map.lastEntry(); System.out.println('TreeMap Last Entry:'+entry); Map reversedMap = map.descendingMap(); System.out.println('Reversed TreeMap: '+reversedMap); //pollFirstEntry, pollLastEntry entry = map.pollFirstEntry(); System.out.println('TreeMap First Entry:'+entry); entry = map.pollLastEntry(); System.out.println('TreeMap Last Entry:'+entry); //subMap Map subMap = map.subMap(2, true, 6, true); System.out.println('Submap from 2 to 6: '+subMap); //headMap subMap = map.headMap(5, true); System.out.println('HeadMap: '+subMap); //tailMap subMap = map.tailMap(5, true); System.out.println('TailMap: '+subMap); } }
Production:
Carte d'origine: {1 = 1, 2 = 4, 3 = 9, 4 = 16, 5 = 25, 6 = 36, 7 = 49, 8 = 64, 9 = 81, 10 = 100}
Entrée inférieure la plus proche de 4: 3 = 9
Entrée la plus proche supérieure à 4: 5 = 25
Clé inférieure la plus proche de 4: 3
Entrée de l'étage la plus proche que 6: 6 = 36
Plafond le plus proche Entrée de 6: 6 = 36
TreeMap Première entrée: 1 = 1
TreeMap Dernière entrée: 10 = 100
TreeMap inversé: {10 = 100, 9 = 81, 8 = 64, 7 = 49, 6 = 36, 5 = 25, 4 = 16, 3 = 9, 2 = 4, 1 = 1}
TreeMap Première entrée: 1 = 1
TreeMap Dernière entrée: 10 = 100
Soumettre de 2 à 6: {2 = 4, 3 = 9, 4 = 16, 5 = 25, 6 = 36}
HeadMap: {2 = 4, 3 = 9, 4 = 16, 5 = 25}
TailMap: {5 = 25, 6 = 36, 7 = 49, 8 = 64, 9 = 81}
Trier TreeMap par valeur
Par défaut, TreeMap est trié en fonction des clés selon l'ordre naturel. Mais si nous voulons trier le TreeMap en fonction des valeurs, nous devons utiliser le comparateur pour définir le tri.
Le programme Java ci-dessous trie le TreeMap par valeur.
import java.util.*; class Main { //Method for sorting the TreeMap based on values public static > Map sortTreeMap(final Map map) { //define a comaprator to sort TreeMap on values Comparator valueComparator = new Comparator() { public int compare(K k1, K k2) { int compare = map.get(k1).compareTo(map.get(k2)); if (compare == 0) return 1; else return compare; } }; //use the comparator to sort the TreeMap and return sortedTreeMap Map sortedTreeMap = new TreeMap(valueComparator); sortedTreeMap.putAll(map); return sortedTreeMap; } public static void main(String args()) { //define and initialize the TreeMap TreeMap treemap = new TreeMap(); treemap.put('R', 'Red'); treemap.put('G', 'Green'); treemap.put('B', 'Blue'); treemap.put('C', 'Cyan'); treemap.put('M', 'Magenta'); // call method sortTreeMap to sort the TreeMap Map sortedTreeMap = sortTreeMap(treemap); // Retrieve set of the entries on the sorted map Set set = sortedTreeMap.entrySet(); System.out.println('The sorted TreeMap based on Values:'); // Now define iterator on this set Iterator i = set.iterator(); // Print TreeMap elements while(i.hasNext()) { Map.Entry me = (Map.Entry)i.next(); System.out.print(me.getKey() + ': '); System.out.println(me.getValue()); } } }
Production:
Le TreeMap trié en fonction des valeurs:
B: bleu
C: cyan
G: vert
M: magenta
R: rouge
meilleur VPN pour le streaming
Java Hashmap vs Treemap
Voyons quelques-unes des principales différences entre un HashMap et un TreeMap.
Le tableau ci-dessous montre ces différences.
HashMap | TreeMap |
---|---|
HashMap est beaucoup plus rapide que TreeMap. | TreeMap est plus lent |
Implémente l'interface de la carte. | Implémente l'interface NavigableMap. |
Utilise la technique d'implémentation du hachage | Utilisez un arbre rouge-noir pour la mise en œuvre |
Ne conserve aucun ordre de contenir les éléments | Les clés dans le treemap sont déjà ordonnées selon l'ordre naturel |
Autorise une clé nulle et plusieurs valeurs nulles | Autorise uniquement les valeurs nulles mais les clés ne peuvent pas être nulles |
Effectuer les opérations de base, mettre et obtenir en temps constant. | Prenez le temps de log (n) pour effectuer les opérations put et get |
HashMap a des fonctionnalités limitées. | La classe TreeMap fournit de nombreuses fonctionnalités supplémentaires qui nous aident à manipuler la structure de données. |
Utilise la méthode equals () pour comparer. | Utilise la méthode compareTo () pour comparer. |
Questions fréquemment posées
Q # 1) Qu'est-ce que TreeMap en Java?
Répondre: TreeMap en Java est une collection de paires clé-valeur qui sont déjà triées. Il utilise un arbre rouge-noir à des fins de mise en œuvre. Java TreeMap implémente l'interface NavigableMap en dehors de l'interface Map et étend également la classe AbstractMap.
Q # 2) Pourquoi utilisons-nous TreeMap en Java?
Répondre: TreeMap est utilisé en Java pour implémenter les interfaces Map et NavigableMap et la classe AbstractMap. Comme les clés TreeMap sont triées selon l'ordre naturel, nous pouvons utiliser cette structure de données pour stocker la structure de répertoires, les hiérarchies d'arbres, etc.
Q # 3) Quel est le meilleur - HashMap ou TreeMap?
Répondre: HashMap est meilleur que TreeMap. HashMap prend toujours un temps constant pour effectuer les opérations de base tandis que TreeMap prend du temps de log (n) pour effectuer ces opérations. Lorsque des objets de données plus volumineux sont impliqués, HashMap fonctionne plus rapidement que TreeMap.
Q # 4) TreeMap est-il trié?
Répondre: Oui, les entrées clés de TreeMap sont triées selon un ordre naturel. La classe TreeMap nous permet également d'utiliser un comparateur personnalisé pour trier le TreeMap en fonction des valeurs.
Q # 5) TreeMap est-il thread-safe?
Répondre: Non, TreeMap n'est pas une collection thread-safe.
Conclusion
Dans ce tutoriel, nous avons discuté en détail de TreeMap en Java. TreeMap est une collection de paires clé-valeur qui implémente l'interface de carte. Il implémente également une interface NavigableMap. Les éléments de TreeMap sont uniques et aucun doublon n'est autorisé.
Nous avons vu les constructeurs et les méthodes de TreeMap. Nous avons également implémenté le programme TreeMap et démontré les principales méthodes de la classe TreeMap. Ensuite, nous avons discuté des différences entre HashMap et TreeMap.
=> Visitez ici pour voir la série de formations Java pour tous.
lecture recommandée
- TreeSet en Java: Tutoriel avec des exemples de programmation
- Arborescence de recherche binaire en Java - Exemples d'implémentation et de code
- Tutoriel JAVA pour les débutants: plus de 100 tutoriels vidéo Java pratiques
- Tutoriel sur la méthode Java String contains () avec des exemples
- Qu'est-ce que le vecteur Java | Tutoriel de classe vectorielle Java avec des exemples
- Jagged Array In Java - Tutoriel avec des exemples
- Tutoriel de classe de scanner Java avec des exemples
- Tutoriel Java String | Méthodes de chaîne Java avec exemples