给定Element[]类型的数组:

Element[] array = {new Element(1), new Element(2), new Element(3)};

如何将此数组转换为ArrayList<Element>类型的对象?

ArrayList<Element> arrayList = ???;

当前回答

在调用Arrays接口时,还可以使用多态性声明ArrayList,如下所示:

List<Element>arraylist=newArrayList<Integer>(Arrays.asList(array));

例子:

Integer[] array = {1};    // autoboxing
List<Integer> arraylist = new ArrayList<Integer>(Arrays.asList(array));

这应该是一种魅力。

其他回答

new ArrayList<>(Arrays.asList(array));

可以使用不同的方法进行转换

List<Element>List=Arrays.asList(array);List<Element>List=newArrayList();Collections.addAll(列表,数组);Arraylist列表=新Arraylist();list.addAll(Arrays.asList(array));

有关详细信息,请参阅http://javarevisited.blogspot.in/2011/06/converting-array-to-arraylist-in-java.html

new ArrayList<T>(Arrays.asList(myArray));

确保myArray的类型与T相同。例如,如果尝试从int数组创建List<Integer>,则会出现编译器错误。

您可以在java8中执行以下操作

ArrayList<Element> list = (ArrayList<Element>)Arrays.stream(array).collect(Collectors.toList());

您也可以使用Java8中的流来实现这一点。

 List<Element> elements = Arrays.stream(array).collect(Collectors.toList());