Structure de données Java TreeMap

JavaBeginner
Pratiquer maintenant

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.java dans 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-each pour 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() et lastKey() 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 commande javac :
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.