Converting between an Array and a List in Java

1. Overview

This quick article is going to show how to convert between an Array and a List using core Java libraries, Guava or Apache Commons Collections.

This article is part of the “Java – Back to Basic” series here on Baeldung.

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[sourceList.size()]);
}

2.2. Using Guava

Let’s now 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 you want a standard ArrayList you can simply instantiate one as so:

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

3.2. Using Guava

Let’s now 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

And finally, let’s use the Apache Commons CollectionsCollectionUtils.addAll API to fill in the elements of the array into 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);
}

4. Conclusion

The implementation of all these examples and code snippets can be found over on GitHub – this is a Maven-based project, so it should be easy to import and run as it is.

Leave a Reply

Your email address will not be published.