检查数组中的dulipate元素时超出范围错误

时间:2019-02-24 11:07:32

标签: java arrays bluej

我遇到了OutofBounds错误。 出站发生在这里“如果(arr [j] == arr [i])” 该程序将找到重复的数字并将其设为0。 并向左移动所有重复的数字。

PCP.PyCollapsiblePane

代码:

input: {10,20,4,20,5}
output:{0,0,10,4,5}

2 个答案:

答案 0 :(得分:0)

那是因为j = i + 1。 可能您应该将for循环更改为:

for ( i = 0; i < arr.length; i++) {
     for (j = i + 1 ; j < arr.length - 1; j++) {

但是无论如何,您的代码看起来都不好。

编辑:您将在接下来的三个for循环中更改i和j的值。您应该真正重新考虑该代码。但是至少在每个for循环中都使用一个新变量,即k,l,m

答案 1 :(得分:0)

问题在于,当i=arr.length-1j=arr.length和j越界时。因此,arr [j]引发错误。将其更改为i < arr.length - 1