Conversion entre une liste et un ensemble en Java

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.

Read more

Mélanger les collections en Java

Apprenez à mélanger diverses collections en Java.

Read more

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.

Read more

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.