我有一个具有指定最大容量M的ArrayList数组,我想通过将其填充零值来初始化该数组。因此,我使用以下代码:
for(int i = 0; i < array.size(); i++) {
array.add(i, 0);
}
但是,这不起作用。我得到一个indexOutOfBoundsException:索引:0,大小:0
确实,我在该循环之后打印了数组,以测试它是否被值填充,但结果是一个空数组:[]。
显然,有一些我不知道的重要概念。我确信解决方案很简单,但是我错过了对该概念的一些基本了解。
更改array.add(i, 0)
为array.add(0);
。
您不能将这些索引添加到这些指定的索引中,除非该索引的大小ArrayList
更大或相等,因为这些索引不存在。
另外for
,由于其大小不是100,因此还必须更改循环。它是0。这是因为声明时array = new ArrayList<Integer>(100)
,仅指定应为其保留多少内存,而不是其大小。它的大小仍然为0,并且只有在添加元素时才会增加。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句