这是我得索引出异常的代码,我不明白为什么,
int index = array.length - 1;
E item = array[index];
while (item == null && index >= 0) {
index--;
item = array[index];
}
我收到了java.lang.ArrayIndexOutOfBoundsException:-1 at item = array [index]; 我不知道我哪里出错了。有人可以帮忙。
答案 0 :(得分:1)
while (item == null && index >= 0) {
index--;
item = array[index];
}
应该是
while (item == null && index >= 0) {
item = array[index--];
}
答案 1 :(得分:0)
在最后一个循环中,运行索引为0,对于条件为真。 然后递减到-1并尝试访问该位置的数组元素。
答案 2 :(得分:0)
int index = array.length - 1;
E item = array[index];
while (item == null && index >= 0) {
index--;
item = array[index];
}
在您访问该索引的index
之前,首先递减element
。当{1}}首次递减索引时,它会达到index = 0
而-1
会为您提供array[-1]
java.lang.ArrayIndexOutOfBoundsException
这应该适合你。
答案 3 :(得分:0)
在将索引用作指向数组中对象的指针之前,while循环是递减的。这将导致指向-1并将为您提供空指针异常。
尝试在item = array [index];
之后放置减量答案 4 :(得分:0)
这应该有效
int index = array.length - 1;
E item = array[index];
while (item == null && index > 0) {
index--;
item = array[index];
}