Exemples et cas d'utilisation de tri d'ensembles (Sets)
Maintenant que nous avons exploré les bases du tri des ensembles (Sets) Java, plongeons dans quelques exemples pratiques et cas d'utilisation.
Tri d'un ensemble de chaînes de caractères
Le tri d'un ensemble de chaînes de caractères est un cas d'utilisation courant. L'exemple suivant montre comment trier un HashSet
de chaînes de caractères en utilisant un TreeSet
:
Set<String> hashSet = new HashSet<>(Arrays.asList("apple", "banana", "cherry", "date"));
Set<String> sortedSet = new TreeSet<>(hashSet);
System.out.println(sortedSet); // Output: [apple, banana, cherry, date]
Tri d'un ensemble d'objets personnalisés
Vous pouvez également trier un ensemble d'objets personnalisés en fournissant un comparateur personnalisé. Dans cet exemple, nous allons trier un ensemble d'objets Person
par leur âge :
class Person {
private String name;
private int age;
// Getters, setters, and constructor omitted for brevity
}
Set<Person> personSet = new HashSet<>(Arrays.asList(
new Person("Alice", 25),
new Person("Bob", 30),
new Person("Charlie", 20)
));
Set<Person> sortedPersonSet = new TreeSet<>(Comparator.comparingInt(Person::getAge));
sortedPersonSet.addAll(personSet);
System.out.println(sortedPersonSet); // Output: [Person(name=Charlie, age=20), Person(name=Alice, age=25), Person(name=Bob, age=30)]
Cas d'utilisation : Suppression des doublons
L'un des principaux cas d'utilisation des ensembles (Sets) Java est la suppression des doublons d'une collection. L'exemple suivant montre comment utiliser un HashSet
pour supprimer les doublons d'une liste :
List<Integer> numbers = Arrays.asList(1, 2, 3, 2, 4, 1, 5);
Set<Integer> uniqueNumbers = new HashSet<>(numbers);
System.out.println(uniqueNumbers); // Output: [1, 2, 3, 4, 5]
Cas d'utilisation : Intersection et union d'ensembles
Les ensembles peuvent également être utilisés pour effectuer des opérations d'ensemble telles que l'intersection et l'union. Cela est utile dans les tâches d'analyse et de traitement de données. L'exemple suivant montre ces opérations :
Set<String> set1 = new HashSet<>(Arrays.asList("apple", "banana", "cherry"));
Set<String> set2 = new HashSet<>(Arrays.asList("banana", "date", "elderberry"));
// Intersection
Set<String> intersection = new HashSet<>(set1);
intersection.retainAll(set2);
System.out.println(intersection); // Output: [banana]
// Union
Set<String> union = new HashSet<>(set1);
union.addAll(set2);
System.out.println(union); // Output: [apple, banana, cherry, date, elderberry]
Ces exemples montrent la polyvalence des ensembles (Sets) Java triés et leurs applications pratiques dans diverses situations. En comprenant comment trier et manipuler les ensembles, vous pouvez exploiter leurs caractéristiques uniques pour résoudre une grande variété de problèmes dans vos tâches de programmation Java.