java数组outofboundexception

时间:2016-09-15 19:15:34

标签: java arrays

public static int[] squeeze(int[] ints) {
    int i;
    int[] temp;
    temp = new int[100];

    for (i = 0; i < ints.length; i++) {
      if (ints[i] != ints[i + 1]) {
        temp[i] = ints[i];
        }
        else{
            while (ints[i] != ints[i + 1]) {
              i++;
            }
            temp[i] = ints[i];
        }
    }

    return temp;
}

当我运行此代码时,它给出了arrayOutOfBoundException。任何人都可以指出错误吗?我基本上检查一个数组中没有两个连续的数字是相同的,然后打印相同的数组,但如果连续两个相同,则使用下一个数字的副本。

1 个答案:

答案 0 :(得分:1)

i == ints.length-1

支票

ints[i] != ints[i + 1]

将发出错误

ints[i + 1]

不存在。

array.length给出数组中元素的数量,而数组的索引从0开始,而不是1.因此,数组array[array.length]的元素永远不会存在,并且总是给出一个异常。