数组索引超出范围异常 - 没有明显的异常原因

时间:2014-11-30 23:56:03

标签: java arrays exception overflow

晚上好帮派:)! 只是想知道是否有人能在这里发现我做错了什么?我已经制作了一个数组排序器,如果找到重复项,它会更改其中一个数组值。代码在这里

 for (int j = 0; j < arrayIn.length;  j++){
        int temp = j++;
        if (arrayIn[j] == temp)
            arrayIn[j] = DUPLICATEREMOVE;
    }

其中DUPLICATEREMOVE是在70处初始化的最终int。我编写了一个简单的测试程序并且编译它按预期工作,但是当我运行它时会抛出一个数组索引超出范围的异常。 在进一步挖掘后,我也知道如果我注释掉这一行:

 arrayIn[j] = DUPLICATEREMOVE;

然后程序按预期工作。所以从这一行抛出异常。我也改变了语句来改为显示常数,即:

arrayIn[j] = 7;

int temp也是一个实验,就像if条件读为:

之前
 if (arrayIn[j] == arrayIn[j++])

我认为可能会抛出错误。 我有点陷入我做错的事情,所以如果有人能发现我做错了什么就会非常感激:)! 感谢。

2 个答案:

答案 0 :(得分:4)

您正在递增j两次。取代

int temp = j++;

int temp = j+1;

答案 1 :(得分:0)

也许使用int temp = j + 1代替j++?我觉得你每次循环增加两次j等等。