繁体   English   中英

ArrayIndexOutOfBound异常

[英]ArrayIndexOutOfBound 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]; 我不知道哪里出了问题。 谁能帮忙。

while (item == null && index >= 0) {
  index--;
  item = array[index];
}

应该

while (item == null && index >= 0) {
  item = array[index--];
}

在最后一个循环中,运行索引为0,这对于条件而言为true。 然后递减为-1,然后尝试在该位置访问数组元素。

int index = array.length - 1;
 E item = array[index];

  while (item == null && index >= 0) {
  index--;
  item = array[index];
  }

在这里,您首先要递减index然后再访问该索引处的element index = 0当您第一次将索引递减时,它达到-1array[-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];
  }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM