Conversion entre une liste et un ensemble en Java
1. Vue d'ensemble
Dans ce court article, nous examineronsthe conversion between a List and a Set - en commençant par Plain Java, en utilisant Guava et enfin en utilisant la bibliothèqueApache Commons Collections.
Cet article fait partie dethe “Java – Back to Basic” series ici par exemple.
Lectures complémentaires:
Comment trouver un élément dans une liste avec Java
Découvrez quelques moyens rapides pour rechercher un élément dans une liste en Java.
Vérifier si deux listes sont égales en Java
Un court article s'est concentré sur le problème commun de tester si deux instances de la liste contiennent les mêmes éléments exactement dans le même ordre.
2. ConvertirList enSet
2.1. Avec Plain Java
Commençons par convertir lesfrom a List to a Set using Java:
public void givenUsingCoreJava_whenListConvertedToSet_thenCorrect() {
List sourceList = Arrays.asList(0, 1, 2, 3, 4, 5);
Set targetSet = new HashSet<>(sourceList);
}
Comme vous pouvez le constater, le processus de conversion est sûr en termes de types et très simple, car les constructeurs de chaque collection acceptent une autre collection en tant que source.
2.2. With Goyave
Faisons la même conversion avec Guava:
public void givenUsingGuava_whenListConvertedToSet_thenCorrect() {
List sourceList = Lists.newArrayList(0, 1, 2, 3, 4, 5);
Set targetSet = Sets.newHashSet(sourceList);
}
2.3. Avec les collections Apache Commons
Ensuite, utilisons l'API Commons Collections pour effectuer une conversion entre unList et unSet:
public void givenUsingCommonsCollections_whenListConvertedToSet_thenCorrect() {
List sourceList = Lists.newArrayList(0, 1, 2, 3, 4, 5);
Set targetSet = new HashSet<>(6);
CollectionUtils.addAll(targetSet, sourceList);
}
3. ConvertirSet enList
3.1. Avec Plain Java
Faisons maintenant la conversion inverse -from a Set to a List – using Java:
public void givenUsingCoreJava_whenSetConvertedToList_thenCorrect() {
Set sourceSet = Sets.newHashSet(0, 1, 2, 3, 4, 5);
List targetList = new ArrayList<>(sourceSet);
}
3.2. Avec goyave
Et la solution de goyave:
public void givenUsingGuava_whenSetConvertedToList_thenCorrect() {
Set sourceSet = Sets.newHashSet(0, 1, 2, 3, 4, 5);
List targetList = Lists.newArrayList(sourceSet);
}
Très similaire à l'approche java, seulement avec un peu moins de code dupliqué.
3.3. Avec les collections Apache Commons
Enfin, la solution Commons Collections pour convertir entre unSet et unList:
public void givenUsingCommonsCollections_whenSetConvertedToList_thenCorrect() {
Set sourceSet = Sets.newHashSet(0, 1, 2, 3, 4, 5);
List targetList = new ArrayList<>(6);
CollectionUtils.addAll(targetList, sourceSet);
}
4. Conclusion
L'implémentation de tous ces exemples et extraits de codecan be found over on GitHub - il s'agit d'un projet basé sur Maven, il devrait donc être facile à importer et à exécuter tel quel.