Java ArrayIndexOutOfBound异常
这是我得到索引越界异常的代码,我不明白为什么Java ArrayIndexOutOfBound异常,java,exception,Java,Exception,这是我得到索引越界异常的代码,我不明白为什么 int index = array.length - 1; E item = array[index]; while (item == null && index >= 0) { index--; item = array[index]; } 我正在获取java.lang.ArrayIndexOutOfBoundsException:-1 at 项=数组[索引]; 我不知道我哪里出错了。谁能帮忙吗 whi
int index = array.length - 1;
E item = array[index];
while (item == null && index >= 0) {
index--;
item = array[index];
}
我正在获取java.lang.ArrayIndexOutOfBoundsException:-1 at
项=数组[索引];
我不知道我哪里出错了。谁能帮忙吗
while (item == null && index >= 0) {
index--;
item = array[index];
}
应该是
while (item == null && index >= 0) {
item = array[index--];
}
在最后一个循环中,运行索引为0,这对于条件来说是真的。 然后减至-1并尝试访问该位置的数组元素
int index = array.length - 1;
E item = array[index];
while (item == null && index >= 0) {
index--;
item = array[index];
}
在这里,在访问该索引处的元素之前,首先递减索引
。当index=0
首次减小索引时,它将达到-1
,而array[-1]
将提供java.lang.ArrayIndexOutOfBoundsException
int index = array.length - 1;
E item = array[index];
while (item == null && index >= 0) {
item = array[index];
index--;
}
这应该适合您。在使用索引作为指向数组中对象的指针之前,您的while循环是递减的。这将导致指向-1,并将导致空指针异常
尝试将减量放在item=array[index]之后 这应该行得通
int index = array.length - 1;
E item = array[index];
while (item == null && index > 0) {
index--;
item = array[index];
}
在访问阵列后放置减量。ie向下移动索引--