1. Overview
In this quick tutorial, weβre going to learn how to convert between an Array and a List using core Java libraries, Guava and Apache Commons Collections.
This article is part of the βJava β Back to Basicβ series here on Baeldung.
Further reading:
Convert an Array of Primitives to a List
Converting a Collection to ArrayList in Java
How to Convert List to Map in Java
2. Convert List to Array
2.1. Using Plain Java
Letβs start with the conversion from List to Array using plain Java:
@Test
public void givenUsingCoreJava_whenListConvertedToArray_thenCorrect() {
List<Integer> sourceList = Arrays.asList(0, 1, 2, 3, 4, 5);
Integer[] targetArray = sourceList.toArray(new Integer[0]);
}
Note that the preferred way for us to use the method is toArray(new T[0]) versus toArray(new T[size]). As Aleksey ShipilΓ«v proves in his blog post, it seems faster, safer, and cleaner.
2.2. Using Guava
Now letβs use the Guava API for the same conversion:
@Test
public void givenUsingGuava_whenListConvertedToArray_thenCorrect() {
List<Integer> sourceList = Lists.newArrayList(0, 1, 2, 3, 4, 5);
int[] targetArray = Ints.toArray(sourceList);
}
3. Convert Array to List
3.1. Using Plain Java
Letβs start with the plain Java solution for converting the array to a List:
@Test
public void givenUsingCoreJava_whenArrayConvertedToList_thenCorrect() {
Integer[] sourceArray = { 0, 1, 2, 3, 4, 5 };
List<Integer> targetList = Arrays.asList(sourceArray);
}
Note that this is a fixed-sized list that will still be backed by the array. If we want a standard ArrayList, we can simply instantiate one:
List<Integer> targetList = new ArrayList<Integer>(Arrays.asList(sourceArray));
3.2. Using Guava
Now letβs use the Guava API for the same conversion:
@Test
public void givenUsingGuava_whenArrayConvertedToList_thenCorrect() {
Integer[] sourceArray = { 0, 1, 2, 3, 4, 5 };
List<Integer> targetList = Lists.newArrayList(sourceArray);
}
3.3. Using Commons Collections
Finally, letβs use the Apache Commons Collections CollectionUtils.addAll API to fill in the elements of the array in an empty List:
@Test
public void givenUsingCommonsCollections_whenArrayConvertedToList_thenCorrect() {
Integer[] sourceArray = { 0, 1, 2, 3, 4, 5 };
List<Integer> targetList = new ArrayList<>(6);
CollectionUtils.addAll(targetList, sourceArray);
}
