Create Arraylist from Array
I Have an Array That Is Initialized Like: Element[] Array = {New Element(1), New Element(2), New Element(3)}; I Would Like to Convert This Array into an Object...
I have an array that is initialized like:
Element[] array = {new Element(1), new Element(2), new Element(3)};
I would like to convert this array into an object of the ArrayList class.
ArrayList<Element> arraylist = ???;
41 Answers
new ArrayList<>(Arrays.asList(array));
Given:
Element[] array = new Element[] { new Element(1), new Element(2), new Element(3) };
The simplest answer is to do:
List<Element> list = Arrays.asList(array);
This will work fine. But some caveats:
- The list returned from asList has fixed size. So, if you want to be able to add or remove elements from the returned list in your code, you'll need to wrap it in a new
ArrayList. Otherwise you'll get anUnsupportedOperationException. - The list returned from
asList()is backed by the original array. If you modify the original array, the list will be modified as well. This may be surprising.
(old thread, but just 2 cents as none mention Guava or other libs and some other details)
If You Can, Use Guava
It's worth pointing out the Guava way, which greatly simplifies these shenanigans:
Usage
For an Immutable List
Use the ImmutableList class and its of() and copyOf() factory methods (elements can't be null):
List<String> il = ImmutableList.of("string", "elements"); // from varargs
List<String> il = ImmutableList.copyOf(aStringArray); // from array
For A Mutable List
Use the Lists class and its newArrayList() factory methods:
List<String> l1 = Lists.newArrayList(anotherListOrCollection); // from collection
List<String> l2 = Lists.newArrayList(aStringArray); // from array
List<String> l3 = Lists.newArrayList("or", "string", "elements"); // from varargs
Please also note the similar methods for other data structures in other classes, for instance in Sets.