【发布时间】:2020-07-05 11:21:15
【问题描述】:
在下面的方法中,我在result.set 遇到"java.lang.IndexOutOfBoundsException: Index: 0, Size: 0" 错误。没有编译错误,但运行后出现此错误。这个数组列表分配有什么问题?我想设置第一个和第二个列表变量。
static List<Integer> compare(List<Integer> a, List<Integer> b) {
int ca=0;
int cb=0;
List<Integer> result = new ArrayList<Integer>();
for(int i=0; i<a.size(); i++){
if(a.get(i) > b.get(i)){
ca++;
}
else if(a.get(i) < b.get(i)){
cb++;
}
}
result.set(0, ca);
result.set(1, cb);
return result;
}
【问题讨论】:
-
将
set()更改为add() -
@Eran 非常感谢。但是更新数组列表中第一个元素的值呢?假设我将其设置为 0,然后更新为 3,我该怎么做?
-
@Eran 另一方面,我应该在定义数组列表时定义它的大小吗?如果是这样,我可以将其设置为
List<Integer> result = new ArrayList<Integer>(2);吗? -
如果 List > 索引的大小,您可以使用
set(index,value),但在您的示例中并非如此。 -
谢谢,但我已经将
set(index,value)用作result.set(0, ca),但会抛出错误。那么,如何设置第一个索引以及我的实现有什么问题?