Conversion entre un tableau et un ensemble en Java

1. Vue d'ensemble

Dans ce court article, nous allons examiner la conversion entre un tableau et un ensemble - d'abord en utilisant java ordinaire, puis Guava et la bibliothèque Commons Collections d'Apache.

Cet article fait partie de la série «Java - Back to Basic» ici sur Baeldung.

2. Convertir un tableau en un ensemble

2.1. Utilisation de Java brut

Voyons d'abord comment transformer le tableau en un ensemble en utilisant Java brut :

@Test public void givenUsingCoreJavaV1_whenArrayConvertedToSet_thenCorrect() { Integer[] sourceArray = { 0, 1, 2, 3, 4, 5 }; Set targetSet = new HashSet(Arrays.asList(sourceArray)); }

Alternativement, l' ensemble peut être créé en premier, puis rempli avec les éléments du tableau:

@Test public void givenUsingCoreJavaV2_whenArrayConvertedToSet_thenCorrect() { Integer[] sourceArray = { 0, 1, 2, 3, 4, 5 }; Set targetSet = new HashSet(); Collections.addAll(targetSet, sourceArray); }

2.2. Utilisation de Google Guava

Ensuite, regardons la conversion de Guava d'un tableau à un ensemble :

@Test public void givenUsingGuava_whenArrayConvertedToSet_thenCorrect() { Integer[] sourceArray = { 0, 1, 2, 3, 4, 5 }; Set targetSet = Sets.newHashSet(sourceArray); }

2.3. Utilisation des collections Apache Commons

Enfin, faisons la conversion en utilisant la bibliothèque Commons Collection d'Apache:

@Test public void givenUsingCommonsCollections_whenArrayConvertedToSet_thenCorrect() { Integer[] sourceArray = { 0, 1, 2, 3, 4, 5 }; Set targetSet = new HashSet(6); CollectionUtils.addAll(targetSet, sourceArray); }

3. Convertir l'ensemble en tableau

3.1. Utilisation de Java brut

Regardons maintenant l'inverse - convertir un ensemble existant en un tableau :

@Test public void givenUsingCoreJava_whenSetConvertedToArray_thenCorrect() { Set sourceSet = Sets.newHashSet(0, 1, 2, 3, 4, 5); Integer[] targetArray = sourceSet.toArray(new Integer[0]); }

Notez que toArray (new T [0]) est le moyen préféré d'utiliser la méthode sur toArray (new T [size]) . Comme le prouve Aleksey Shipilëv dans son article de blog, cela semble plus rapide, plus sûr et plus propre.

3.2. Utilisation de la goyave

Suivant - la solution Guava:

@Test public void givenUsingGuava_whenSetConvertedToArray_thenCorrect() { Set sourceSet = Sets.newHashSet(0, 1, 2, 3, 4, 5); int[] targetArray = Ints.toArray(sourceSet); }

Notez que nous utilisons l' API Ints de Guava, donc cette solution est spécifique au type de données avec lequel nous travaillons.

4. Conclusion

L'implémentation de tous ces exemples et extraits de code peut être trouvée sur Github - il s'agit d'un projet basé sur Maven, il devrait donc être facile à importer et à exécuter tel quel.