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
Another Java8 solution (I may have missed the answer among the large set. If so, my apologies). This creates an ArrayList (as opposed to a List) i.e. one can delete elements
package package org.something.util;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
public class Junk {
static <T> ArrayList<T> arrToArrayList(T[] arr){
return Arrays.asList(arr)
.stream()
.collect(Collectors.toCollection(ArrayList::new));
}
public static void main(String[] args) {
String[] sArr = new String[]{"Hello", "cruel", "world"};
List<String> ret = arrToArrayList(sArr);
// Verify one can remove an item and print list to verify so
ret.remove(1);
ret.stream()
.forEach(System.out::println);
}
}
Output is...
Hello
world
We can easily convert an array to ArrayList.
We use Collection interface's addAll() method for the purpose of copying content from one list to another.
Arraylist arr = new Arraylist();
arr.addAll(Arrays.asList(asset));
as all said this will do so
new ArrayList<>(Arrays.asList("1","2","3","4"));
and the common newest way to create array is observableArrays
ObservableList: A list that allows listeners to track changes when they occur.
for Java SE you can try
FXCollections.observableArrayList(new Element(1), new Element(2), new Element(3));
that is according to Oracle Docs
observableArrayList() Creates a new empty observable list that is backed by an arraylist. observableArrayList(E... items) Creates a new observable array list with items added to it.
also in Java 9 it's a little bit easy:
List<String> list = List.of("element 1", "element 2", "element 3");
If we see the definition of Arrays.asList() method you will get something like this:
public static <T> List<T> asList(T... a) //varargs are of T type.
So, you might initialize arraylist like this:
List<Element> arraylist = Arrays.asList(new Element(1), new Element(2), new Element(3));
Note : each
new Element(int args)will be treated as Individual Object and can be passed as avar-args.
There might be another answer for this question too.
If you see declaration for java.util.Collections.addAll() method you will get something like this:
public static <T> boolean addAll(Collection<? super T> c, T... a);
So, this code is also useful to do so
Collections.addAll(arraylist, array);
Given Object Array:
Element[] array = {new Element(1), new Element(2), new Element(3) , new Element(2)};
Convert Array to List:
List<Element> list = Arrays.stream(array).collect(Collectors.toList());
Convert Array to ArrayList
ArrayList<Element> arrayList = Arrays.stream(array)
.collect(Collectors.toCollection(ArrayList::new));
Convert Array to LinkedList
LinkedList<Element> linkedList = Arrays.stream(array)
.collect(Collectors.toCollection(LinkedList::new));
Print List:
list.forEach(element -> {
System.out.println(element.i);
});
OUTPUT
1
2
3
Another update, almost ending year 2014, you can do it with Java 8 too:
ArrayList<Element> arrayList = Stream.of(myArray).collect(Collectors.toCollection(ArrayList::new));
A few characters would be saved, if this could be just a List
List<Element> list = Stream.of(myArray).collect(Collectors.toList());