링크 된 목록에서 고유 번호의 모양을 계산하는 알고리즘을 구현 중입니다. 문제는 입력이 1 1 1 2 2 2
Java가 배열에 잘못된 데이터를 씁니다.
대신 출력 받고 같은
1 외관 3 회
이 모양 일 때하는 나는, 모양을 믿는다 for 루프에 3 번
나는 3
모습
1 얻고있다 입력
1 2 3 4 5 6 7 8 9
사랑의 외관 17,451,515,0 0
는 I 인덱스에서 예외 어레이를 얻었다. 여기 코드는
public static void main(String[] args) {
LinkedList<Integer> list = new LinkedList<Integer>();
Scanner user_input = new Scanner(System.in);
String input = user_input.nextLine();
//Getting user input, if the user enter an empty line(enter, enter) the loop will die
while(input.length() > 0){
list.add(Integer.parseInt(input));
input = user_input.nextLine();
}
Collections.sort(list); //sorting the input
//Getting the number of unique numbers
int count_of_unique_numbers = 1;// There will be atleast one unique number
if(!list.isEmpty()){
int temp = list.get(0);
for(int i = 1;i < list.size(); i++){
if(temp != list.get(i)){
count_of_unique_numbers++;
temp = list.get(i);
}
}
}
else{
System.out.println("The list is empty");
return;
}
//Counting how many times the unique numbers apper;
int number_appearance[][] = new int[count_of_unique_numbers][2];
int temp = list.get(0);
int counter = 1;
int j = 0;
for(int i = 1;i < list.size();i++){
if(temp == list.get(i)){ counter++; }
else{
number_appearance[j][0] = temp;
number_appearance[j][1] = counter;
counter = 1;
temp = list.get(i);
j++;
}
}
//Printing the number_appearance array
for(int i = 0; i < count_of_unique_numbers; i++){
System.out.println("The number: " + number_appearance[i][0] + " appearece " + number_appearance[i][1] + " times");
}
}
* * 당신이 예외를 얻고있다, 당신은 그것을 통해 디버깅 있나요? –
(* 다른 * 번호를 발견했을 때만 쓸 수 있기 때문에 최종 번호를 귀하의 목록에 쓰지 마십시오.) –
세 번째 for 루프에서 if 조건에서 얻으 려 할 때 i 번째 요소 [temp == list.get (i)] – justNoob