Conversion entre un tableau et une liste en Java

1. Vue d'ensemble

Cet article rapide va montrer comment convertir entre un tableau et une liste à l' aide des bibliothèques Java principales, des collections Guava ou Apache Commons.

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

2. Convertir la liste en tableau

2.1. Utilisation de Java brut

Commençons par la conversion de List en Array en utilisant Java brut :

@Test public void givenUsingCoreJava_whenListConvertedToArray_thenCorrect() { List sourceList = Arrays.asList(0, 1, 2, 3, 4, 5); Integer[] targetArray = sourceList.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.

2.2. Utilisation de la goyave

Utilisons maintenant l'API Guava pour la même conversion:

@Test public void givenUsingGuava_whenListConvertedToArray_thenCorrect() { List sourceList = Lists.newArrayList(0, 1, 2, 3, 4, 5); int[] targetArray = Ints.toArray(sourceList); }

3. Convertir le tableau en liste

3.1. Utilisation de Java brut

Commençons par la solution Java simple pour convertir le tableau en liste :

@Test public void givenUsingCoreJava_whenArrayConvertedToList_thenCorrect() { Integer[] sourceArray = { 0, 1, 2, 3, 4, 5 }; List targetList = Arrays.asList(sourceArray); }

Notez qu'il s'agit d'une liste de taille fixe qui sera toujours sauvegardée par la baie. Si vous voulez une ArrayList standard, vous pouvez simplement en instancier une comme suit:

List targetList = new ArrayList(Arrays.asList(sourceArray));

3.2. Utilisation de la goyave

Utilisons maintenant l'API Guava pour la même conversion:

@Test public void givenUsingGuava_whenArrayConvertedToList_thenCorrect() { Integer[] sourceArray = { 0, 1, 2, 3, 4, 5 }; List targetList = Lists.newArrayList(sourceArray); } 

3.3. Utilisation des collections communes

Et enfin, utilisons l' API Apache Commons Collections - CollectionUtils.addAll pour remplir les éléments du tableau dans une liste vide:

@Test public void givenUsingCommonsCollections_whenArrayConvertedToList_thenCorrect() { Integer[] sourceArray = { 0, 1, 2, 3, 4, 5 }; List targetList = new ArrayList(6); CollectionUtils.addAll(targetList, sourceArray); }

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.