首页 > 解决方案 > 没有找到适合 ArrayList(List)

问题描述

不是“没有找到合适的构造函数”的副本,也不是“没有合适的构造函数”的副本。

我的目标是将数组转换为arrayList。我看过Create ArrayList from array

所以我尝试了:

ArrayList<Integer> al = new ArrayList<Integer>(Arrays.asList(arr));

其中arr是一个整数数组。

在编译时,我得到:

error: no suitable constructor found for ArrayList(List<int[]>)

所以我查看了文档并找到了一个构造函数:

ArrayList(Collection<? extends E> c)

由于ArrayList<Integer>remaining = new ArrayList<Integer>(new Stack<Integer>());编译时没有错误,我推断传递 List<> (可能还有 的任何其他子接口Collection)会导致错误,而任何实现的类Collection都会编译。

Create ArrayList from array的 OP询问过:

我有一个初始化为的数组:

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

我想将此数组转换为 ArrayList 类的对象。

ArrayList<Element> arraylist = ???;

这正是我想做的。

为什么接受的答案:

新的 ArrayList<>(Arrays.asList(array))

为那个 OP 工作,但不为我工作?我是否忽略了一些非常小的东西?

编辑:我忘记了关键字“新”。现在添加它。同样的错误

标签: javaarraysarraylist

解决方案


您正在传递一个int[]to Arrays.asList(),这意味着它返回 a List<int[]>,这对于 a 的构造函数是不可接受的ArrayList<Integer>

如果您正在创建一个ArrayList<int[]>,则以下内容将起作用:

ArrayList<int[]> al = new ArrayList<int[]>(Arrays.asList(arr));

但是,我认为这不是你想要的。您可能应该从 aInteger[]而不是int[]. 然后Arrays.asList()会产生一个List<Integer>,可以传递给ArrayList<Integer>构造函数。


推荐阅读