Vérifier si un élément existe dans TreeSet en Java

Comment faire pour rechercher des objets stockés dans une TreeSet ? ArrayList implémente l'interface java.util.List qui fournit la méthode get(int index) pour récupérer un objet avec son index. Contrairement à List, TreeSet implémente l'interface java.util.Set qui n'autorise pas l'indexation des objets, donc on ne peut y accéder directement.

Toutefois, les deux collections partagent la méthode contains() pour vérifier si la liste (dans notre cas TreeSet) contient un élément spécifique. Vous pouvez parcourir TreeSet avec Iterator et tester l'égalité avec la condition if(o1.equals(o2)) jusqu'à atteindre l'élément recherché. Là on parle de Set, donc les éléments sont mélangés et n'ont pas d'index précis.

import java.util.Iterator;
import java.util.TreeSet;

public class search_element {
public static void main(String[] args) {
// création de TreeSet
TreeSet tset = new TreeSet();

// remplir TreeSet
tset.add("abc");
tset.add("bcd");
tset.add("cde");
tset.add("def");
tset.add("efg");

String e = "def";

// vérifier l'existance d'un élément spécifique dans TreeSet
boolean existe = tset.contains(e);
System.out.println(e+" existe dans treeset ? "+existe);

String e2 = "eee";
existe = tset.contains(e2);
System.out.println(e2+" existe dans treeset ? "+existe);

Iterator iterator = tset.iterator();
// rechercher l'élément et tester l'égalité avec equals
while (iterator.hasNext()){
String obj = iterator.next();
if(obj.equals(e))
System.out.println("l'objet "+e+" existe dans la liste");
}
}
}
La compilation et l'exécution de ce code donne ceci:

def existe dans treeset ? true
eee existe dans treeset ? false
l'objet def existe dans la liste
Références:
StackOverFlow: How come Java's TreeSet has no get() method?