ArrayIndexOutOfBound异常

时间:2013-10-15 22:33:53

标签: 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       item = array [index]; 我不知道我哪里出错了。有人可以帮忙。

5 个答案:

答案 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];
  }