내 프로그램의 문제가 단순히 배열을 선언 한 위치에 있는지 또는 둘 이상으로 채우고 있는지 확실하지 않습니다. 가져가도 돼. 내가 얻을'java.lang.ArrayIndexOutOfBoundsException'오류를 해결할 수 없습니다.
import java.util.Scanner;
import java.util.Arrays;
public class EliminateDuplicates {
public static void main(String[] args) {
int[] numberList = new int[10];
System.out.println("Please enter ten integers.");
Scanner input = new Scanner(System.in);
for (int i = 0; i < numberList.length; i++) {
numberList[i] = input.nextInt();
}
int[] newNumberList = new int[10];
newNumberList = eliminateDuplicates(numberList);
System.out.println("The discrete numbers are: ");
for (int i = 0; i < newNumberList.length; i++) {
System.out.println(newNumberList[i] + ' ');
}
}
public static int[] eliminateDuplicates(int[] numberList) {
int[] noDuplicateList = new int[numberList.length];
int size = 0;
java.util.Arrays.sort(numberList);
for (int i = 0; i < numberList.length; i++) {
if (numberList[i] != numberList[i+1]) {
noDuplicateList[i] = numberList[i];
size++;
}
}
return noDuplicateList;
}
}
이 출력 + 오류 메시지는 다음과 같습니다 :
Please enter ten integers.
9
8
7
3
3
4
1
2
8
6
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 10
at EliminateDuplicates.eliminateDuplicates(EliminateDuplicates.java:51)
at EliminateDuplicates.main(EliminateDuplicates.java:28)
좋아, 감사합니다. 나는 그것을 할 수있는 더 좋은 방법이 있는지 궁금해하고있었습니다 ... 그래도 여전히 이상한 30 대 번호가 있습니다. – yves
@lawizeg 최근 편집 내역보기 – Eran