我正在尝试通过以下代码从此数组中删除重复的元素,该错误提示我:
线程“主”中的异常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]);
}
}
答案 0 :(得分:5)
您在这里有错字:
for(int j = i+1 ; i<x.length ; j++) {
^ this should be j
当前(错误的)循环直到它超过数组末尾才停止。 结果,您试图获取x [12 + 1]的值,即x [13],超出数组范围。