Convert ArrayList to Arrays in Java
- By Viral Patel on June 29, 2009
- Java
A lot of time I have to convert ArrayList to Arrays in my Java program. Although this is a simple task, many people don’t know how to do this and end up in iterating the java.util.ArrayList to convert it into arrays. I saw such code in one of my friends work and I thought to share this so that people don’t end up writing easy thing in complicated way.
ArrayList class has a method called toArray() that we are using in our example to convert it into Arrays.
Following is simple code snippet that converts an array list of countries into string array.
List<String> list = new ArrayList<String>();
list.add("India");
list.add("Switzerland");
list.add("Italy");
list.add("France");
String [] countries = list.toArray(new String[list.size()]);
So to convert ArrayList of any class into array use following code. Convert T into the class whose arrays you want to create.
List<T> list = new ArrayList<T>(); T [] countries = list.toArray(new T[list.size()]);
Convert Array to ArrayList
We just saw how to convert ArrayList in Java to Arrays. But how to do the reverse? Well, following is the small code snippet that converts an Array to ArrayList:
import java.util.ArrayList;
import java.util.List;
import java.util.Arrays;
...
String[] countries = {"India", "Switzerland", "Italy", "France"};
List list = new Arrays(Arrays.asList(countries));
System.out.println("ArrayList of Countries:" + list);
Get our Articles via Email. Enter your email address.




String[] countries = new String[0];
List list = new ArrayList();
list.add(“India”);
list.add(“Switzerland”);
list.add(“Italy”);
list.add(“France”);
countries = list.toArray(countries);
You don’t have to put the list.size() to the new array, just 0 is enough because it just uses the information about the type of the return array, not the size, so the following code will work:
T [] countries = list.toArray(new T[0]);
Maybe the following comment would have been better:
This is also works: T[] countries = list.toArray(new T[0]);
The \"toArray\" method automatically adjusts the size of the target array, but it must be initialized… I just use zero;
Thanks!
It was useful for me!
If you use an array with the correct size within the toArray method, the result is returned within the provided array. If you use a “new T[0]” another array has to be created, that is thrown away after the type information is read.
So it is bad style to use “new T[0]“.