给定Element[]类型的数组:
Element[] array = {new Element(1), new Element(2), new Element(3)};
如何将此数组转换为ArrayList<Element>类型的对象?
ArrayList<Element> arrayList = ???;
给定Element[]类型的数组:
Element[] array = {new Element(1), new Element(2), new Element(3)};
如何将此数组转换为ArrayList<Element>类型的对象?
ArrayList<Element> arrayList = ???;
当前回答
正如大家所说的那样
new ArrayList<>(Arrays.asList("1","2","3","4"));
创建数组的最新常用方法是observableArrays
ObservableList:允许侦听器在发生更改时跟踪更改的列表。
对于Java SE,您可以尝试
FXCollections.observableArrayList(new Element(1), new Element(2), new Element(3));
根据Oracle Docs
可观测阵列列表()创建一个由数组列表支持的新的空可观察列表。可观测阵列列表(E…项)创建一个新的可观察数组列表,其中添加了项。
更新Java 9
在Java 9中也有点简单:
List<String> list = List.of("element 1", "element 2", "element 3");
其他回答
Java8的Arrays类提供了一个stream()方法,该方法具有接受基元数组和Object数组的重载版本。
/**** Converting a Primitive 'int' Array to List ****/
int intArray[] = {1, 2, 3, 4, 5};
List<Integer> integerList1 = Arrays.stream(intArray).boxed().collect(Collectors.toList());
/**** 'IntStream.of' or 'Arrays.stream' Gives The Same Output ****/
List<Integer> integerList2 = IntStream.of(intArray).boxed().collect(Collectors.toList());
/**** Converting an 'Integer' Array to List ****/
Integer integerArray[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
List<Integer> integerList3 = Arrays.stream(integerArray).collect(Collectors.toList());
另一种简单的方法是使用for each循环将数组中的所有元素添加到新的ArrayList中。
ArrayList<Element> list = new ArrayList<>();
for(Element e : array)
list.add(e);
给定对象数组:
Element[] array = {new Element(1), new Element(2), new Element(3) , new Element(2)};
将数组转换为列表:
List<Element> list = Arrays.stream(array).collect(Collectors.toList());
将数组转换为ArrayList
ArrayList<Element> arrayList = Arrays.stream(array)
.collect(Collectors.toCollection(ArrayList::new));
将数组转换为LinkedList
LinkedList<Element> linkedList = Arrays.stream(array)
.collect(Collectors.toCollection(LinkedList::new));
打印列表:
list.forEach(element -> {
System.out.println(element.i);
});
输出,输出
1
2
3
每个人已经为你的问题提供了足够好的答案。现在,从所有的建议中,你需要决定哪一个符合你的要求。您需要了解两种类型的集合。一个是未修改的集合,另一个是允许您稍后修改对象的集合。
因此,这里我将给出两个用例的简短示例。
不可变集合创建::创建后不想修改集合对象时List<Element>elementList=Arrays.asList(array)可变集合创建::创建后可能需要修改创建的集合对象时。List<Element>elementList=newArrayList<Element>(Arrays.asList(array));
由于这个问题很古老,所以我很惊讶,还没有人提出最简单的形式:
List<Element> arraylist = Arrays.asList(new Element(1), new Element(2), new Element(3));
从Java5开始,Arrays.asList()采用varargs参数,不必显式构造数组。