In The previous post we have learn difference ways of conversion arraylist to array in java . Now in this tutorial we will learn How to convert array to list java . We have different ways for this as following
Let’s discuss these way one by one
1. Conversion using Arrays.asList()
syntax:
/*
Returns a fixed-size list backed by the specified array
*/
public static <T> List<T> asList(T... a) {
}
This method take array argument and return list which have
- Returns a fixed-size list backed by the specified array
- The returned list is serializable and implements RandomAccess.
- We cann’t add more element in this list because it is fixed size list
import java.util.Arrays;
import java.util.List;
public class ArrayToArrayList {
public static void main(String[] args) {
String [] arr = {"java","php" ,"spring","mysql","android"};
/*
* Returns a fixed-size list backed by the specified array.
*/
List<String> list = Arrays.asList(arr);
System.out.println("list is = "+ list);
}
}
Output:
list is = [java, php, spring, mysql, android]
Now if we add element in returned list we will get error “java.lang.UnsupportedOperationException”
public class ArrayToArrayList {
public static void main(String[] args) {
String [] arr = {"java","php" ,"spring","mysql","android"};
/*
* Returns a fixed-size list backed by the specified array.
*/
List<String> list = Arrays.asList(arr);
//print list
System.out.println("list is = "+ list);
list.add("angularjs");
//print list
System.out.println("list is ="+ list);
}
}
Output :
list is = [java, php, spring, mysql, android]
Exception in thread "main" java.lang.UnsupportedOperationException
at java.util.AbstractList.add(Unknown Source)
at java.util.AbstractList.add(Unknown Source)
at com.demo.arraylist.ArrayToArrayList.main(ArrayToArrayList.java:18)
Therefore It is recommended that create arraylist using new arraylist and pass Arrays.asList(arr) as argument in constructor of arraylist . Let’s see code for that
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
public class ArrayToArrayList {
public static void main(String[] args) {
String [] arr = {"java","php" ,"spring","mysql","android"};
/*
* Returns a fixed-size list backed by the specified array.
*/
List<String> list = new ArrayList<String>(Arrays.asList(arr));
//print list
System.out.println("list is = "+ list);
list.add("angularjs");
//print list
System.out.println("list is ="+ list);
}
}
Output :
list is = [java, php, spring, mysql, android]
list is =[java, php, spring, mysql, android, angularjs]
2. Using Collections.addAll() Method
Syntax :
/*
Adds all of the specified elements to the
specified collection.
*/
public static <T> boolean addAll(Collection<? super T> c, T... elements) {
}
Collections.addAll() method Adds all of the given elements to the specified collection. Elements to be added may be specified individually or as an array. This method provides a convenient way to add a few elements to an existing collection:
Collections.addAll(list, “java”, “spring”);
it is returns true if the collection changed as a result of the call
and it throws UnsupportedOperationException – if collection c does not support the add operation
NullPointerException – if elements contains one or more null values and collection c does not permit null elements, or if c or elements are null
IllegalArgumentException – if some property of a value in elements prevents it from being added to collection c. Now we will convert array to arraylist by using this method .
import java.util.ArrayList;
import java.util.Collections;
public class ArrayToListByAllAdd {
public static void main(String[] args) {
String [] arr = {"java","php" ,"spring","mysql","android"};
ArrayList<String> arrayList = new ArrayList<String>();
/*
Adds all of the specified elements to the
specified collection.
*/
Collections.addAll(arrayList,arr);
System.out.println("list is ="+ arrayList);
}
}
Output :
list is =[java, php, spring, mysql, android]
3. Manual method to convert Array using add() method
In this method we will iterate array and one by one all element add to arraylist using add() method
import java.util.ArrayList;
public class ArrayToListByAdd {
public static void main(String[] args) {
String [] arr = {"java","php" ,"spring","mysql","android"};
ArrayList<String> arrayList = new ArrayList<String>();
//add array element in arraylist one by one using add()
for (int i = 0; i < arr.length; i++) {
arrayList.add(arr[i]) ;
}
//print arraylist
System.out.println("list is ="+arrayList);
}
}
Output :
list is =[java, php, spring, mysql, android]