我目前正在使用Java Collection Framework,并创建了一个大小为10的列表,但程序仍然提示我列表大小为0
,如果列表处理后,当然会抛出IndexOfBoundException
< / p>
我已经搜索过这个,但是我不知道为什么会这样
int size =sc.nextInt();
List<Integer> list = new ArrayList<Integer>(size);
System.out.println(list+" "+list.size());
我希望输出为[0,0,0,0,0,0,0,0,0,0,0] 10,但输出为[] 0。
答案 0 :(得分:1)
看看文档,它说创建了具有指定容量的空列表。
public ArrayList(int initialCapacity)
使用指定的初始容量构造一个空列表。
此功能是什么,为什么有用?
每个ArrayList实例都有一个容量。容量是用于在列表中存储元素的数组的大小。它总是至少与列表大小一样大。将元素添加到ArrayList后,其容量会自动增长。除了添加元素具有固定的摊销时间成本这一事实外,没有指定增长策略的详细信息。
答案 1 :(得分:1)
要将false
初始化为具有默认值的给定大小,可以使用List
:
nCopies
现在您的List<Integer> list = new ArrayList<>(Collections.nCopies(size,0));
语句将输出:
println
(假设[0, 0, 0, 0, 0, 0, 0, 0, 0, 0] 10
是size
)。
答案 2 :(得分:0)
该参数初始化一个具有特定容量的内部数组(如果没有给出参数,默认值实际上已经是10)
您必须循环使用值填充列表,并且列表的外部集合从大小0开始
答案 3 :(得分:0)
List<Integer> list = new ArrayList<Integer>()
{
{
for (int i = 0; i < size; i++) {
add(0);
}
}
};
System.out.println(list+" "+list.size());
现在我们可以拥有适当大小的List并用0初始化。