Leçon 38 : Travailler avec l'interface Set
L'interface Set modélise le concept mathématique d'un ensemble : une collection non ordonnée qui ne contient que des éléments uniques.
1. HashSet
- Implémentation : Utilise une table de hachage pour le stockage (repose sur le hachage d'objets).
- Performance : Offre des performances en temps constant (O(1)) pour les opérations de base comme
add(),remove()etcontains(), en supposant une bonne fonction de hachage. - Ordre : Ne garantit pas l'ordre d'insertion.
java import java.util.HashSet; import java.util.Set;
Set
System.out.println(uniqueColors.size()); // Sortie : 2
// Parcourir un Set (l'ordre n'est pas garanti) for (String color : uniqueColors) { System.out.println(color); }
2. LinkedHashSet
- Maintient l'ordre d'insertion (parcourt les éléments dans l'ordre où ils ont été ajoutés).
- Légèrement plus lent que
HashSeten raison de la surcharge liée au maintien de la structure de liste chaînée.
3. TreeSet
- Implémentation : Utilise une structure d'arbre (Arbre Rouge-Noir).
- Ordre : Stocke les éléments dans leur ordre de tri naturel (ou selon un Comparator personnalisé).
- Performance : Les opérations sont généralement en O(log N) (temps logarithmique), ce qui le rend plus lent que
HashSetmais nécessaire si une sortie triée est requise.
java import java.util.TreeSet;
TreeSet
// Sortie : [10, 30, 50] (Toujours trié) System.out.println(sortedNumbers);