我正在尝试使用pre[1]
将值List <Integer> list = new ArrayList(pre[1]);
赋予新列表,但是我得到了一个空列表。
当我将其分为两个步骤时:首先创建一个空的list1
,然后将pre[1]
添加到我的list1
中,它可以正常工作:list1
包含2
谁能告诉我为什么? 我期待着同样的结果。
我当时以为List <Integer> list = new ArrayList(pre[1]);
正在创建一个列表,并将值初始化为pre[1]
,但没有用,这是什么问题?
int[] pre =new int []{1,2,3};
List <Integer> list = new ArrayList(pre[1]);
List <Integer> list1 = new ArrayList();
list1.add(pre[1]);
答案 0 :(得分:3)
请阅读the documentation of ArrayList
's constructors。
TL; DR:没有构造函数接收初始化的ArrayList
应该包含的新元素。
您要调用的构造函数是the one that receives an integer as argument,它的容量是根据参数(即pre[1]
或2
)定义的。
答案 1 :(得分:0)
ArrayList
的构造函数接收initialCapacity
而不是元素。
因此,根据您的情况,您正在使用initialCapacity
2(即pre [1])创建List。
public ArrayList(int initialCapacity)
您可能想在Java9中尝试List.of
List.of(pre[1], pre[2]);