Following methods can be used for converting Array To ArrayList:
Method 1: Using Arrays.asList() method
Syntax: public static List asList(T... a) // Returns a fixed-size List as of size of given array. // Element Type of List is of same as type of array element type. // It returns an List containing all of the elements in this // array in the same order. // T represents generics
Note that the there is an array parameter and List return value.
- Returns a fixed-size list backed by the specified array.
- The returned list is serializable and implements RandomAccess.
- Since returned List is fixed-size therefore we can’t add more element in it, but we can replace existing element with new element using set(index, new Element) method defined in ArrayList class.
// Java program to demonstrate conversion of // Array to ArrayList of fixed-size. import java.util.*;
class GFG
{ public static void main (String[] args)
{
String[] geeks = { "Rahul" , "Utkarsh" ,
"Shubham" , "Neelam" };
// Conversion of array to ArrayList
// using Arrays.asList
List al = Arrays.asList(geeks);
System.out.println(al);
}
} |
Output:
[Rahul, Utkarsh, Shubham, Neelam]
What if we add more elements to the converted list?
Since returned List is fixed-size List, we can’t add more element(s). An attempt of adding more elements would cause UnsupportedOperationException.
Consider the following example.
// Java program to demonstrate error // if we add more element(s) to // a fixed-size List. import java.util.*;
class GFG
{ public static void main (String[] args)
{
String[] geeks = { "Rahul" , "Utkarsh" ,
"Shubham" , "Neelam" };
// Conversion of array to ArrayList
// using Arrays.asList
List al = Arrays.asList(geeks);
System.out.println(al);
// Adding some more values to the List.
al.add( "Shashank" );
al.add( "Nishant" );
System.out.println(al);
}
} |
Output:
[Rahul, Utkarsh, Shubham, Neelam]
Runtime error
Exception in thread "main" java.lang.UnsupportedOperationException at java.util.AbstractList.add(AbstractList.java:148) at java.util.AbstractList.add(AbstractList.java:108) at GFG.main(File.java:16)
It is therefore recommended to create new ArrayList and pass Arrays.asList(array reference) as an argument to it (i.e. as an constructor argument of ArrayList).
Consider the following example:
// Java program to demonstrate how to add // one or more element(s) to returned // resizable List. import java.util.*;
class GFG
{ public static void main (String[] args)
{
String[] geeks = { "Rahul" , "Utkarsh" ,
"Shubham" , "Neelam" };
List<String> al =
new ArrayList<String>(Arrays.asList(geeks));
System.out.println(al);
// Adding some more values to the List.
al.add( "Shashank" );
al.add( "Nishant" );
System.out.println( "\nArrayList After adding two" +
" more Geeks: " );
System.out.println(al);
}
} |
[Rahul, Utkarsh, Shubham, Neelam] ArrayList After adding two more Geeks: [Rahul, Utkarsh, Shubham, Neelam, Nishant, Shashank]
&nbap;
Method 2: Using Collections.addAll() method
Syntax: public static boolean addAll(Collection c, T... a) // Adds all of the specified elements to the specified collection. // Elements to be added may be specified individually or as an array. // T is generics
Note that there is a collection parameter c into which elements to be inserted and array parameter a contains the elements to insert into c.
Return type is boolean type. It returns true if the collection changed as a result of the call.
It throws UnsupportedOperationException if collection c does not support add method and throws IllegalArgumentException if some aspect of a value in elements(or elements of array) prevents it from being added to collection c.
Consider the following example:
// Java program to demonstrate how to // add all elements of array to arrayList. import java.util.*;
class GFG
{ public static void main (String[] args)
{
String[] geeks = { "Rahul" , "Utkarsh" ,
"Shubham" , "Neelam" };
List<String> al = new ArrayList<String>();
// adding elements of array to arrayList.
Collections.addAll(al, geeks);
System.out.println(al);
}
} |
Output :
[Rahul, Utkarsh, Shubham, Neelam]
Adding null to the list
Note : If the specified collection or specified array is null then it throw NullpointerException.
// Adding null to a list import java.util.*;
class GFG
{ public static void main (String[] args)
{
String[] geeks = { "Rahul" , "Utkarsh" ,
"Shubham" , "Neelam" };
List<String> al = new ArrayList<String>();
Collections.addAll( null , geeks);
System.out.println(al);
}
} |
Adding null to the end of list
import java.util.*;
class GFG
{ public static void main (String[] args)
{
String[] geeks = { "Rahul" , "Utkarsh" ,
"Shubham" , "Neelam" };
List<String> al = new ArrayList<String>();
Collections.addAll(al, null );
System.out.println(al);
}
} |
RunTime Error
Exception in thread "main" java.lang.NullPointerException at java.util.Collections.addAll(Collections.java:5401) at GFG.main(File.java:11)
Method 3: Using Manual method to convert Array using add() method
We can use this method if we don’t want to use java in built method(s). This is a manual method of adding all array’s elements to List.
Syntax: public boolean add(Object obj) // Appends the specified element to the end of this list. // Returns true.
// Java program to convert a ArrayList to // an array using add() in a loop. import java.util.*;
class GFG
{ public static void main (String[] args)
{
String[] geeks = { "Rahul" , "Utkarsh" ,
"Shubham" , "Neelam" };
List<String> al = new ArrayList<String>();
// Array to ArrayList Conversion
for (String geek : geeks)
al.add(geek);
System.out.println(al);
}
} |
Output:
[Rahul, Utkarsh, Shubham, Neelam]
Related Article: ArrayList to Array Conversion