从int数组中删除重复的元素

Esr*_*ama 0 java arrays sorting integer

我试图通过以下代码从此数组中删除重复的元素,它给了我这个错误:

线程“主”中的异常java.lang.ArrayIndexOutOfBoundsException:在pro2.Main.main(Main.java:36)处长度13的索引13超出范围

代码 :

public static void main(String[] args) {
    int[] x = { 2, 2, 3, 5, 6, 3, 5, 6, 7, 8, 9, 1, 7 };

    Integer[] o = new Integer[x.length];

    for (int i = 0; i < x.length; i++) { 
        o[i] = Integer.valueOf(x[i]);
    }

    for (int i = 0; i < x.length; i++) {
        for (int j = i + 1; i < x.length; j++) {
            if (o[i] == o[j]) {
                o[j] = null;
             }  
        }
    }

    for (int i = 0; i < x.length; i++) {    
         if(o[i]!=null)
          System.out.print(o[i]);   
    }
}
Run Code Online (Sandbox Code Playgroud)

NPE*_*NPE 5

您在这里有错字:

        for(int j = i+1 ; i<x.length ; j++) {
                          ^ this should be j
Run Code Online (Sandbox Code Playgroud)

当前的(错误的)循环直到运行到数组末尾时才停止。结果,您尝试获取x [12 + 1]的值,即x [13],超出数组范围。