Exemple de la classe java.util.TreeSet

La classe java.util.TreeSet de java est similaire à la classe HashSet sauf qu'elle trie les éléments dans l'ordre croissant. Les données sont stockées dans une TreeMap qui est un arbre binaire équilibré ou dans une SorteMap.

Le temps d’accès est très rapide, ce qui rend TreeSet un excellent choix quand les données sont volumineuses et qui doivent être trouvées vite.

La classe TreeSet implémente 4 constructeurs:

- TreeSet(): crée une TreeSet vide.
- TreeSet(Collection c): crée une TreeSet qui contient les éléments de la collection d'objets c.
- TreeSet(Comparator comp): crée une TreeSet vide qui va être triée selon le comparateur.
- TreeSet(SortedSet sset): crée une TreeSet qui contient les éléments de sset.

Méthodes de TreeSet

void add(Object o)
Utilise la méthode put() de TreeMap pour ajouter un couple.

void addAll(Collection c)
Ajoute un ensemble d'éléments à la liste.

void remove(Object o)
Supprime la première instance de la liste.

void clear()
Supprime tous les éléments.

SortedSet subSet(Object E1, Object E2)
Retourne la subliste des éléments qui se situent entre deux bornes [E1, E2].

SortedSet headSet(Object E)
Retourne l'ensemble des éléments qui sont strictement inférieurs à E.

SortedSet tailSet(Object E)
Retourne l'ensemble des éléments qui sont supérieurs ou égaux à E.

Object first()
Retourne le premier élément dans cette liste ordonnée (le plus petit).

Object last()
Retourne le dernier élément dans cette liste ordonnée (le plus grand).

Exemple

Dans cet exemple, on va tester deux types: String et Integer. TreeSet est capable de trier aussi les chaines de caractères selon son code ASCII alpha-numérique.

import java.util.TreeSet;

public class Main {
public static void main(String args[]) {
// TreeSet de type String
TreeSet tsetString = new TreeSet();

// ajouter des objets de type String
tsetString.add("D");
tsetString.add("G");
tsetString.add("Z");
tsetString.add("A");
tsetString.add("F");
tsetString.add("T");
tsetString.add("S");
tsetString.add("M");

//Affichage
System.out.println(tsetString);

// TreeSet de type Integer
TreeSet tsetInteger = new TreeSet();

// ajouter des objets de type Integer
tsetInteger.add(5);
tsetInteger.add(87);
tsetInteger.add(42);
tsetInteger.add(24);
tsetInteger.add(23);
tsetInteger.add(152);
tsetInteger.add(70);
tsetInteger.add(54);
System.out.println(tsetInteger);
}
}
Sortie:

[A, D, F, G, M, S, T, Z]
[5, 23, 24, 42, 54, 70, 87, 152]
On voit ici que les deux listes contient des valeurs triées dans l'ordre croissant.

Vous pouvez consulter ces tutoriels sur la collection d'objets TreeSet:

Parcourir TreeSet en utilisant Iterator
Ajouter un élément à TreeSet
Supprimer un élément de TreeSet
Supprimer tous les éléments de TreeSet
Différence entre TreeSet et HashSet
Convertir une HashSet en TreeSet
Exemple de TreeSet avec Comparable
Trier TreeSet dans l'ordre décroissant
Vérifier si un élément existe dans TreeSet

Références:
TutorialsPoint: java - The TreeSet class
Javadoc: TreeSet