Introduction
La classe TreeMap en Java est une partie de l'interface de collection Java et implémente l'interface Map. Elle stocke les paires clé-valeur dans un ordre trié contrairement à d'autres implémentations de Map. Dans ce laboratoire, vous allez apprendre à utiliser efficacement la classe TreeMap dans vos programmes Java.
Création d'un TreeMap
- Ouvrez votre éditeur de texte et créez un nouveau fichier nommé
TreeMapDemo.javadans le répertoire~/project. - Importez les packages requis :
import java.util.Comparator;
import java.util.Map;
import java.util.TreeMap;
- Créez un objet TreeMap :
Map<Integer, String> map = new TreeMap<>();
Ajout d'éléments au TreeMap
- Utilisez la méthode
put()pour ajouter des éléments au TreeMap :
map.put(1, "John");
map.put(2, "Mary");
map.put(3, "Peter");
Ajoutez ce code à l'intérieur de la méthode principale.
Affichage du TreeMap
- Utilisez une boucle
for-eachpour parcourir le TreeMap :
for(Map.Entry<Integer, String> entry : map.entrySet()) {
System.out.println(entry.getKey() + " " + entry.getValue());
}
Utilisation d'un tri personnalisé
- Créez une nouvelle classe appelée
Employee:
class Employee implements Comparable<Employee> {
private int id;
private String name;
public Employee(int id, String name) {
this.id = id;
this.name = name;
}
public int getId() {
return id;
}
public String getName() {
return name;
}
@Override
public int compareTo(Employee e) {
return this.id - e.getId();
}
}
- Ajoutez quelques employés au TreeMap :
Map<Employee, String> employeeMap = new TreeMap<>();
employeeMap.put(new Employee(3, "John"), "IT");
employeeMap.put(new Employee(2, "Mary"), "HR");
employeeMap.put(new Employee(1, "Peter"), "Finance");
- Maintenant, lorsque vous parcourez le TreeMap, il sera trié en fonction de l'identifiant de l'employé :
for(Map.Entry<Employee, String> entry : employeeMap.entrySet()) {
System.out.println(entry.getKey().getId() + " "
+ entry.getKey().getName() + " "
+ entry.getValue());
}
Utilisation de comparateurs pour le tri
- Définissez un comparateur personnalisé dans votre classe
TreeMapDemo:
class DescendingOrder implements Comparator<Integer> {
@Override
public int compare(Integer o1, Integer o2) {
return o2 - o1;
}
}
- Créez un nouvel objet TreeMap avec le comparateur personnalisé :
Map<Integer, String> treeMap = new TreeMap<>(new DescendingOrder());
treeMap.put(1, "John");
treeMap.put(4, "Mary");
treeMap.put(2, "Peter");
- Maintenant, lorsque vous parcourez le TreeMap, il sera trié par ordre décroissant :
for(Map.Entry<Integer, String> entry : treeMap.entrySet()) {
System.out.println(entry.getKey() + " " + entry.getValue());
}
Accès aux éléments de la carte
- Utilisez la méthode
get()pour accéder à un élément spécifique :
String name = map.get(1);
System.out.println("Name is " + name);
Suppression d'éléments de la carte
- Utilisez la méthode
remove()pour supprimer un élément spécifique :
String removedName = map.remove(2);
System.out.println("Supprimé : " + removedName);
Récupération de la taille de la carte
- Utilisez la méthode
size()pour obtenir le nombre d'éléments dans le TreeMap :
int size = map.size();
System.out.println(size);
Récupération des premiers et derniers éléments
- Utilisez les méthodes
firstKey()etlastKey()pour récupérer les premiers et derniers éléments dans le TreeMap :
int firstKey = map.firstKey();
int lastKey = map.lastKey();
Récupération d'une plage d'éléments
- Utilisez la méthode
subMap()pour récupérer une plage d'éléments :
Map<Integer, String> rangeMap = map.subMap(1, 3);
for(Map.Entry<Integer, String> entry : rangeMap.entrySet()) {
System.out.println(entry.getKey() + " " + entry.getValue());
}
Compiler et exécuter le programme
- Ouvrez votre terminal et accédez au répertoire
~/projet. - Compilez le fichier
TreeMapDemo.javaà l'aide de la commandejavac:
javac TreeMapDemo.java
- Exécutez le programme à l'aide de la commande
java:
java TreeMapDemo
Résumé
Dans ce laboratoire, vous avez appris à connaître la classe TreeMap en Java et à l'utiliser efficacement dans vos programmes. Vous avez appris à créer un TreeMap, à ajouter et à supprimer des éléments, et à récupérer des éléments selon des critères spécifiques. Vous avez également appris à personnaliser l'ordre de tri à l'aide de comparateurs. La classe TreeMap offre beaucoup de flexibilité et de contrôle sur le tri et le stockage des paires clé-valeur.



