La classe Java TreeMap stocke les données dans une structure arborescente à l'aide d'une interface cartographique. Cette classe étend la classe AbstractMap et, comme sa classe parente, TreeMap a deux paramètres de type. L'un de ses paramètres de type représente les clés dans le TreeMap, tandis que l'autre représente les valeurs.

La structure de données TreeMap stocke des paires clé-valeur et vous permet d'effectuer des opérations CRUD sur ces données.

Comment créer un TreeMap en Java

La classe TreeMap a quatre constructeurs que vous pouvez utiliser pour créer un nouvel objet TreeMap. Le constructeur par défaut est le plus populaire des quatre. Ce constructeur ne prend aucun argument et génère une carte arborescente vide.

// Crée une nouvelle carte arborescente
TreeMap clients = Nouveau TreeMap();

Le code ci-dessus génère une carte arborescente vide appelée clients.

Remplir la structure de données TreeMap

La mettre() La méthode ajoute un élément à un objet TreeMap. Il prend deux arguments: une clé et sa valeur. Vous pouvez ajouter des éléments à l'arborescence dans n'importe quel ordre aléatoire et la structure de données les stockera dans l'ordre croissant, selon leurs clés.

instagram viewer

// Remplir une carte arborescente
clients.put(105, "Jessica Jones");
clients.put(102, "Marc Williams");
clients.put(104, "Phil Blair");
clients.put(101, "Kim Brown");
clients.put(103, "Jim Riley");

Le code ci-dessus ajoute cinq clients, dans un ordre aléatoire, à l'arborescence des clients.

Affichage des éléments dans un TreeMap

La classe TreeMap stocke ses données dans un objet. Ainsi, pour voir tous les éléments d'une carte arborescente, vous pouvez simplement imprimer l'objet carte arborescente sur la console :

// Afficher tous les éléments de l'arborescence en tant qu'objet
System.out.println (clients) ;

Le code ci-dessus imprime la sortie suivante sur la console :

{101=Kim Brown, 102=Mark Williams, 103=Jim Riley, 104=Phil Blair, 105=Jessica Jones}

Notez que l'objet ci-dessus affiche les éléments par ordre croissant. Vous pouvez également afficher chaque élément et sa clé correspondante à l'aide de une boucle for Java.

// Afficher tous les éléments avec un itérateur
pour (Entrée client: clients.entrySet()) {
System.out.println("Clé: " + client.getKey() + " Valeur: " + client.getValue());
}

Le code ci-dessus imprime la sortie suivante sur la console :

Clé: 101 Valeur: Kim Brown
Clé: 102 Valeur: Mark Williams
Clé: 103 Valeur: Jim Riley
Clé: 104 Valeur: Phil Blair
Clé: 105 Valeur: Jessica Jones

Mise à jour des éléments dans un TreeMap

La classe TreeMap vous permet de mettre à jour un élément existant à l'aide de la remplacer() méthode. Il existe deux méthodes de remplacement. La première méthode prend une clé existante et la nouvelle valeur à laquelle vous souhaitez mapper la clé existante.

// Remplace la valeur existante
clients.remplacer(101,"Kim Smith");
System.out.println (clients) ;

Le code ci-dessus imprime l'objet suivant dans la console :

{101=Kim Smith, 102=Mark Williams, 103=Jim Riley, 104=Phil Blair, 105=Jessica Jones}

Comme tu peux le voir Kim Brun est maintenant Kim Smith. La deuxième méthode replace () prend une clé existante, la valeur actuelle de la clé et la nouvelle valeur que vous souhaitez mapper à la clé.

// Remplace la valeur existante
clients.remplacer(103,"Jim Riley", "Michelle Noah");
System.out.println (clients) ;

Le code ci-dessus imprime l'objet suivant dans la console :

{101=Kim Brown, 102=Mark Williams, 103=Michelle Noah, 104=Phil Blair, 105=Jessica Jones}

Dans l'objet ci-dessus Michelle Noé remplace Jim Riley.

Suppression d'éléments du TreeMap

Si vous souhaitez supprimer un seul élément de l'arborescence, le retirer() méthode est votre seule option. Il prend la clé associée à l'élément que vous souhaitez supprimer et renvoie la valeur supprimée.

// Supprimer un élément
clients.remove(104);
System.out.println (clients) ;

L'exécution du code ci-dessus imprime l'objet suivant dans la console :

{101=Kim Smith, 102=Mark Williams, 103=Michelle Noah, 105=Jessica Jones}

Cette Classe Java possède également un dégager() méthode qui permet de supprimer tous les éléments de l'arborescence.

Le TreeMap vs. la classe Java HashMap

TreeMap et HashMap sont deux des classes de cartes Java les plus populaires. Ils étendent tous les deux la classe AbstractMap. Cette relation donne aux classes TreeMap et HashMap l'accès à un grand nombre des mêmes fonctions.

Cependant, il existe des différences notables entre ces deux classes de cartes. Le TreeMap utilise une implémentation d'arbre rouge-noir de l'interface Map, tandis que le HashMap utilise une table de hachage. HashMap vous permet de stocker une seule clé nulle, contrairement à TreeMap. Enfin, un HashMap est plus rapide qu'un TreeMap. La vitesse algorithmique du premier est O(1) tandis que celle du second est O(log (n)).