Une brève introduction à TreeMap en Java avec des exemples



Cet article vous fournira une connaissance détaillée et complète de TreeMap en Java avec des exemples de méthodes et de constructeurs.

L'implémentation d'une interface Map en Java est une tâche très importante. Pour cela, nous avons TreeMap et HashMap . Dans cet article, nous nous concentrerons sur TreeMap dans dans l'ordre suivant:

Qu'est-ce qu'un TreeMap en Java?

Un TreeMap en Java est utilisé pour implémenter l'interface Map et NavigableMap avec la classe abstraite. La carte est triée selon l'ordre naturel de ses clés, ou par un comparateur fourni au moment de la création de la carte, selon le constructeur utilisé. Cela s'avère être un moyen efficace de trier et de stocker les paires clé-valeur.





TreeMap-in-JavaL'ordre de stockage maintenu par le treemap doit être cohérent avec les égaux comme toute autre carte triée, quels que soient les comparateurs explicites. Le treemapl'implémentation n'est pas synchronisée dans le sens où si une carte est accédée par plusieurs threads, simultanément et qu'au moins un des threads modifie la carte structurellement, elle doit être synchronisée en externe.

Caractéristiques de TreeMaps

  • Cette classe est membre de Java Collections Framework.



    séquence de fibonacci en c ++
  • La classe implémente des interfaces Map, y compris NavigableMap, SortedMap et étend AbstractMap

  • TreeMap en Java n'autorise pas les clés nulles (comme Map) et donc une NullPointerException est levée. Cependant, plusieurs valeurs nulles peuvent être associées à différentes clés.

  • Toutes les paires Map.Entry renvoyées par les méthodes de cette classe et ses vues représentent des instantanés des mappages au moment où ils ont été produits.



  • Ils ne prennent pas en charge la méthode Entry.setValue.

Points importants à retenir

  1. Outre l'implémentation de l'interface Map, Java TreeMap implémente également NavigableMap et implémente indirectement l'interface SortedMap. TreeMap étend également la classe AbstractMap.

  2. Les entrées TreeMap sont triées dans l'ordre naturel de ses clés. Il fournit également un constructeur pour fournir un comparateur à utiliser pour la commande. Donc, si vous utilisez une classe comme clé, assurez-vous qu'elle implémente une interface comparable pour un ordre naturel. Consultez les questions d'entretien des collections Java pour comprendre l'importance de ces méthodes.

  3. L'implémentation de Java TreeMap fournit un coût en temps log (n) garanti pour les opérations containsKey, get, put et remove.

  4. TreeMap n'est pas synchronisé et donc pas thread-safe. Pour les environnements multithread, vous pouvez obtenir une synchronisation encapsulée à l'aide de la méthode Collections.synchronizedSortedMap.

  5. Les méthodes TreeMap pour obtenir le jeu de clés et les valeurs renvoient Iterator qui est de nature à échec rapide, de sorte que toute modification simultanée lèvera ConcurrentModificationException.

  6. TreeMap en java n'autorise pas les clés nulles, cependant, vous pouvez avoir plusieurs valeurs nulles associées à différentes clés.

Constructeurs dans TreeMap

Constructeur La description
TreeMap () Construit un treemap vide qui sera trié en utilisant l'ordre naturel de ses clés.
TreeMap (comparaison comp) Construit une carte vide basée sur une arborescence qui sera triée à l'aide de la composition Comparator.
TreeMap (Carte m) Initialise un treemap avec les entrées de m, qui seront triées en utilisant l'ordre naturel des clés.
TreeMap (SortedMap sm) Initialise un treemap avec les entrées de SortedMap sm, qui seront triées dans le même ordre que sm.

Méthodes dans TreeMap

Méthode La description
vide clair () Supprime tous les mappages de cette TreeMap.
Clone d'objet () Renvoie une copie superficielle de cette instance de TreeMap.
Comparateur comparateur () Renvoie le comparateur utilisé pour ordonner cette carte, ou null si cette carte utilise l'ordre naturel de ses clés.
boolean containsKey (clé d'objet) Renvoie true si cette carte contient un mappage pour la clé spécifiée.
boolean containsValue (valeur de l'objet) Renvoie true si cette carte mappe une ou plusieurs clés à la valeur spécifiée.
Définir l'entréeSet () Renvoie une vue d'ensemble des mappages contenus dans cette carte.
Objet firstKey () Renvoie la première clé (la plus basse) actuellement dans cette carte triée.
Object get (clé d'objet) Renvoie la valeur à laquelle cette carte mappe la clé spécifiée.
SortedMap headMap (objet toKey) Renvoie une vue de la partie de cette carte dont les clés sont strictement inférieures à toKey.
Définir keySet () Renvoie une vue d'ensemble des clés contenues dans cette carte.
Objet lastKey () Renvoie la dernière clé (la plus élevée) actuellement dans cette carte triée.
Objet put (clé d'objet, valeur d'objet) Associe la valeur spécifiée à la clé spécifiée dans cette mappe.
void putAll (Carte carte) Copie tous les mappages de la carte spécifiée sur cette carte.
Suppression d'objet (clé d'objet) Supprime le mappage de cette clé de cette TreeMap si elle est présente.
taille int () Renvoie le nombre de mappages clé-valeur dans cette carte.
SortedMap subMap (Objet fromKey, Object toKey) Renvoie une vue de la partie de cette carte dont les clés vont de fromKey, inclus, à toKey, exclusif.
SortedMap tailMap (objet fromKey) Renvoie une vue de la partie de cette carte dont les clés sont supérieures ou égales à fromKey.
Valeurs de collection () Renvoie une vue de collection des valeurs contenues dans cette carte.

Exemple de TreeMap en Java

import java.util.TreeMap classe publique TreeMapMain {public static void main (String args []) {// TreeMap avec Country comme clé et capital comme valeur // TreeMap stocke les éléments dans l'ordre naturel des clés. TreeMap countryCapitalMap = new TreeMap () countryCapitalMap.put ('Inde', 'Delhi') countryCapitalMap.put ('Japon', 'Tokyo') countryCapitalMap.put ('France', 'Paris') countryCapitalMap.put ('Russie' , 'Moscou') System.out.println ('-----------------------------') // Itération TreeMap à l'aide de keySet ( ) et pour chaque boucle System.out.println ('Iterating TreeMap Using keySet () and for each loop') for (String countryKey: countryCapitalMap.keySet ()) {System.out.println ('Country:' + countryKey + ' et Capital: '+ countryCapitalMap.get (countryKey))} System.out.println (' ----------------------------- ' )}}

Production:

Avec cela, nous arrivons à la fin de cet article TreeMap en Java. C diable le par Edureka, une entreprise d'apprentissage en ligne de confiance avec un réseau de plus de 250 000 apprenants satisfaits répartis dans le monde entier. Le cours de formation et de certification Java J2EE et SOA d'Edureka est conçu pour les étudiants et les professionnels qui souhaitent devenir développeur Java. Le cours est conçu pour vous donner une longueur d'avance dans la programmation Java et vous former aux concepts Java de base et avancés ainsi qu'à divers frameworks Java tels que Hibernate et Spring.

Vous avez une question pour nous? Veuillez le mentionner dans la section commentaires de ce blog «TreeMap en Java» et nous vous répondrons dans les plus brefs délais.