从数组创建ArrayList
时间:2020-03-06 14:58:45 来源:igfitidea点击:
我有一个像这样初始化的数组:
Element[] array = {new Element(1), new Element(2), new Element(3)};
我想将此数组转换为ArrayList类的对象。
ArrayList<Element> arraylist = ???;
解决方案
new ArrayList<>(Arrays.asList(array))
new ArrayList<T>(Arrays.asList(myArray));
确保" myArray"与" T"具有相同的类型。例如,如果尝试从int
数组创建List <Integer>
,则会出现编译器错误。
我们可能只需要一个列表,而不是一个ArrayList。在这种情况下,我们可以执行以下操作:
List<Element> arraylist = 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()返回的列表由原始数组支持。如果我们修改原始数组,则列表也将被修改。这可能令人惊讶。