Conversion entre un tableau et une liste en Java

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.