使用零初始化ArrayList <integer>的值 - Java </integer>

时间:2014-02-16 08:02:24

标签: java arraylist

我有一个具有指定最大容量M的ArrayList数组,我想通过填充零值来初始化该数组。因此,我使用以下代码:

for(int i = 0; i < array.size(); i++) {

    array.add(i, 0);

}

然而,这不起作用。我得到一个indexOutOfBoundsException:索引:0,大小:0

实际上,我在该循环之后打印了数组,以便测试它是否填充了值,但结果是一个空数组:[]。

显然,我不知道有一些重要的概念。我确信解决方案很简单但我错过了这个概念的一些基本见解。

3 个答案:

答案 0 :(得分:9)

要初始化一个包含100个零的ArrayList:

ArrayList<Integer> list = new ArrayList<Integer>(Collections.nCopies(100, 0));

答案 1 :(得分:3)

array.add(i, 0)更改为array.add(0);

除非ArrayList的大小更大或相等,否则不能添加到那些指定的索引,因为这些索引不存在。

此外,您还必须更改for循环,因为它的大小不是100;它是0.这是因为当你声明array = new ArrayList<Integer>(100)时,你只是指定应该为它保留多少内存 - 而不是它的大小。它的大小仍为0,只有在添加元素时才会增长。

答案 2 :(得分:2)

在初始化arraylist

之后,您还可以通过此代码将列表设为0值
for (int i = 0; i < 60; i++) {
    list.add(0);
}