Java Array to List
There are two built-in ways to convert Array to List in Java.
- Arrays.asList(T… a): This is the simplest way to convert Array to ArrayList in java but this method returns the underlying representation of the array in the form of ArrayList. The returned ArrayList is fixed-sized and any attempt to modify that will result in UnsupportedOperationException at runtime. Also, any change in the array will change the elements in ArrayList also.
- Collections.addAll(ArrayList<T> strList, T[] strArr): This is the best way to convert array to ArrayList because the array data is copied to the list and both are independent object. Once the array is copied, you can modify both the objects independently. Collections is a very useful class in Java Collections Framework that provides a lot of utility methods.
Now let’s see both these methods usage in action.
package com.journaldev.util;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
public class ArrayToArrayList {
/**
* This class shows different methods to convert Array to ArrayList
*
* @param args
*/
public static void main(String[] args) {
String[] strArr = {"1", "2", "3", "4"};
List<String> strList = new ArrayList<String>();
//return the list representation of array
//any change in array elements will change the arrayList elements also
strList = Arrays.asList(strArr);
System.out.println("Original ArrayList from Arrays.asList()");
for (String str : strList)
System.out.print(" " + str);
//change the array element and see the effect is propogated to list also.
strArr[0] = "5";
System.out.println("nChange in array effect on ArrayList");
for (String str : strList)
System.out.print(" " + str);
//below code will throw java.lang.UnsupportedOperationException because
// Arrays.asList() returns a fixed-size list backed by the specified array.
//strList.add("5");
strList = new ArrayList<String>();
Collections.addAll(strList, strArr);
//change both the array and arraylist and check if they are independent?
strList.add("5");
strArr[0] = "1";
System.out.println("nArray to ArrayList using Collections.addAll()");
for (String str : strList)
System.out.print(" " + str);
}
}
The output of the above program is:
Original ArrayList from Arrays.asList()
1 2 3 4
Change in array effect on ArrayList
5 2 3 4
Array to ArrayList using Collections.addAll()
5 2 3 4 5
Java Array To List
So now you know which method to use to convert Array to ArrayList based on the requirements.
Here is the video tutorial explaining it in Eclipse.