给定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 = ???;
当前回答
每个人已经为你的问题提供了足够好的答案。现在,从所有的建议中,你需要决定哪一个符合你的要求。您需要了解两种类型的集合。一个是未修改的集合,另一个是允许您稍后修改对象的集合。
因此,这里我将给出两个用例的简短示例。
不可变集合创建::创建后不想修改集合对象时List<Element>elementList=Arrays.asList(array)可变集合创建::创建后可能需要修改创建的集合对象时。List<Element>elementList=newArrayList<Element>(Arrays.asList(array));
其他回答
鉴于:
Element[] array = new Element[] { new Element(1), new Element(2), new Element(3) };
最简单的答案是:
List<Element> list = Arrays.asList(array);
这会很好的。但需要注意的是:
从asList返回的列表大小固定。因此,如果您希望能够在代码中添加或删除返回列表中的元素,则需要将其包装在新的ArrayList中。否则,您将获得UnsupportedOperationException。从asList()返回的列表由原始数组支持。如果修改原始数组,列表也将被修改。这可能令人惊讶。
每个人已经为你的问题提供了足够好的答案。现在,从所有的建议中,你需要决定哪一个符合你的要求。您需要了解两种类型的集合。一个是未修改的集合,另一个是允许您稍后修改对象的集合。
因此,这里我将给出两个用例的简短示例。
不可变集合创建::创建后不想修改集合对象时List<Element>elementList=Arrays.asList(array)可变集合创建::创建后可能需要修改创建的集合对象时。List<Element>elementList=newArrayList<Element>(Arrays.asList(array));
根据这个问题,使用java 1.7的答案是:
ArrayList<Element> arraylist = new ArrayList<Element>(Arrays.<Element>asList(array));
但是,最好始终使用界面:
List<Element> arraylist = Arrays.<Element>asList(array);
在Java 9中,您可以使用:
List<String> list = List.of("Hello", "World", "from", "Java");
List<Integer> list = List.of(1, 2, 3, 4, 5);
可以使用以下3种方法从Array创建ArrayList。
String[] array = {"a", "b", "c", "d", "e"};
//Method 1
List<String> list = Arrays.asList(array);
//Method 2
List<String> list1 = new ArrayList<String>();
Collections.addAll(list1, array);
//Method 3
List<String> list2 = new ArrayList<String>();
for(String text:array) {
list2.add(text);
}