Classe TreeSet Java : Guide pour Débutants

Introduction

Bonjour à vous, futurs programmeurs Java !aujourd'hui, nous allons entamer un voyage passionnant dans le monde des TreeSets Java. Ne vous inquiétez pas si vous n'avez jamais écrit une ligne de code avant – je serai votre guide amical, et nous explorerons ce sujet étape par étape ensemble.

Java - TreeSet

Imaginez que vous organisez une étagère de livres. Vous voulez conserver vos livres dans un ordre spécifique, peut-être alphabétiquement par titre. C'est exactement ce que fait un TreeSet pour les données en Java – il garde les choses organisées et triées automatiquement. Cool, non ?

Déclaration de Classe

Commençons par les bases. En Java, un TreeSet est déclaré ainsi :

import java.util.TreeSet;

TreeSet<E> treeSet = new TreeSet<E>();

Ici, 'E' est un espace réservé pour le type d'éléments que vous souhaitez stocker. Il peut s'agir d'Integer, String ou de tout autre type d'objet. Par exemple :

TreeSet<String> bookTitles = new TreeSet<String>();

Cela crée un TreeSet qui stockera des titres de livres sous forme de chaînes de caractères.

Paramètres

TreeSet n'a pas de paramètres propres, mais il implémente l'interface NavigableSet, qui étend SortedSet. Cela signifie qu'il hérite de certains comportements qui permettent une navigation et un tri efficaces.

Constructeurs de Classe

TreeSet est fourni avec plusieurs constructeurs. Examinons les plus courants :

  1. Constructeur par défaut :

    TreeSet<String> set1 = new TreeSet<String>();

    Cela crée un TreeSet vide qui trie les éléments dans leur ordre naturel.

  2. Constructeur avec Comparator :

    TreeSet<String> set2 = new TreeSet<String>(Comparator.reverseOrder());

    Cela crée un TreeSet qui trie les éléments en utilisant le Comparator spécifié.

  3. Constructeur avec Collection :

    ArrayList<Integer> numbers = new ArrayList<Integer>();
    numbers.add(5);
    numbers.add(2);
    numbers.add(8);
    TreeSet<Integer> set3 = new TreeSet<Integer>(numbers);

    Cela crée un TreeSet contenant tous les éléments de la Collection donnée.

Méthodes de Classe

TreeSet fournit une variété de méthodes utiles. Voici un tableau des principales méthodes :

Méthode Description
add(E element) Ajoute l'élément spécifié à l'ensemble
clear() Supprime tous les éléments de l'ensemble
contains(Object o) Retourne vrai si l'ensemble contient l'élément spécifié
first() Retourne le premier (le plus bas) élément de l'ensemble
last() Retourne le dernier (le plus haut) élément de l'ensemble
remove(Object o) Supprime l'élément spécifié de l'ensemble
size() Retourne le nombre d'éléments dans l'ensemble

Méthodes Héritées

TreeSet hérite de méthodes de plusieurs interfaces et classes, y compris AbstractSet, NavigableSet et SortedSet. Cela lui confère un riche ensemble de fonctionnalités pour travailler avec des données triées.

Exemple d' Ajout d'Entrées à un TreeSet

Mettons notre connaissance en pratique avec un exemple amusant. Nous allons créer un TreeSet pour organiser une liste de super-héros par niveau de pouvoir :

import java.util.TreeSet;

public class SuperheroPowerRanking {
public static void main(String[] args) {
TreeSet<String> heroes = new TreeSet<String>();

// Ajout de super-héros à notre TreeSet
heroes.add("Superman: 100");
heroes.add("Batman: 90");
heroes.add("Wonder Woman: 95");
heroes.add("Flash: 85");
heroes.add("Aquaman: 80");

System.out.println("Super-héros classés par pouvoir :");
for (String hero : heroes) {
System.out.println(hero);
}

System.out.println("\nSuper-héros le plus puissant : " + heroes.last());
System.out.println("Super-héros le moins puissant : " + heroes.first());
}
}

Sortie

Lorsque nous exécutons ce code, voici ce que nous obtenons :

Super-héros classés par pouvoir :
Aquaman: 80
Batman: 90
Flash: 85
Superman: 100
Wonder Woman: 95

Super-héros le plus puissant : Wonder Woman: 95
Super-héros le moins puissant : Aquaman: 80

Décomposons ce qui se passe ici :

  1. Nous créons un TreeSet appelé 'heroes' pour stocker nos classements de pouvoir de super-héros.
  2. Nous ajoutons des super-héros à l'ensemble en utilisant la méthode add().
  3. Le TreeSet trie automatiquement les entrées alphabétiquement (parce que nous utilisons des Strings).
  4. Nous utilisons une boucle for-each pour imprimer tous les héros dans l'ordre trié.
  5. Nous utilisons last() pour obtenir le dernier (alphabétiquement) héros, et first() pour obtenir le premier.

Notez comment les héros sont classés alphabétiquement par leurs noms, pas par leurs niveaux de pouvoir. Si nous voulions classer par niveau de pouvoir, nous devrions utiliser un Comparator personnalisé – mais c'est une leçon pour un autre jour !

En conclusion, TreeSet est un outil puissant pour maintenir les données triées en Java. Que vous classiez des super-héros, organisiez une collection de livres ou gériez tout autre type de données qui doit rester ordonné, TreeSet est là pour vous.

N'oubliez pas, la pratique fait le maître. Essayez de créer vos propres TreeSets avec différents types de données. Peut-être classer vos films préférés ou trier une liste des anniversaires de vos amis. Plus vous jouerez avec, plus vous vous sentirez à l'aise. Bon codage, futurs maîtres Java !

Credits: Image by storyset