Conversion entre un tableau et une liste en Java
1. Vue d'ensemble
Cet article rapide va montrer commentconvert between an Array and a List en utilisant les bibliothèques Java principales, les collections Guava ou Apache Commons.
Cet article fait partie dethe “Java – Back to Basic” series ici par exemple.
2. ConvertirList en tableau
2.1. Utilisation de Java brut
Commençons par la conversion deList en tableauusing plain java:
@Test
public void givenUsingCoreJava_whenListConvertedToArray_thenCorrect() {
List sourceList = Arrays.asList(0, 1, 2, 3, 4, 5);
Integer[] targetArray = sourceList.toArray(new Integer[sourceList.size()]);
}
2.2. Utilisation de goyave
Utilisons maintenantthe Guava API 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 un tableau enList
3.1. Utilisation de Java brut
Commençons par la solution Java simple pour convertir le tableau enList:
@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 le tableau. Si vous voulez unArrayList standard, vous pouvez simplement en instancier un comme suit:
List targetList = new ArrayList(Arrays.asList(sourceArray));
3.2. Utilisation de goyave
Utilisons maintenantthe Guava API 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'APIApache 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 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.