从数组创建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 &lt;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()返回的列表由原始数组支持。如果我们修改原始数组,则列表也将被修改。这可能令人惊讶。