0
private Comparable[] items = new Comparable[1000000];
bubbleSort(items);
public static <T extends Comparable<T>> void bubbleSort(T[] list){
T temp;
for (int k = 1; k < list.length; k++) {
// Perform the kth pass
for (int i = 0; i < list.length - k; i++) {
if (list[i].compareTo(list[i + 1]) > 0){
temp = list[i];
list[i] = list[i + 1];
list[i + 1] = temp;
}
}
}
}
문제는 if (list[i].compareTo(list[i]) > 0)
입니다. 한 번에 한 줄씩 모든 것을 주석 처리했습니다. 이것이 오류의 원인이되는 유일한 원인이며 출력에 대한 설명을 제공하지 않습니다. 그것이 어느 라인에 있는지. if에있을 것이고, bubbleSort 메소드를 호출 할 것이다.Java 오브젝트 compareto
잘 행동하는 comparable은 항상'list [i] .compareTo (list [i]) == 0'이어야합니다. 정의에 따라. 'list [i] .compareTo (list [k]) '또는 그 반대의 뜻입니까? – assylias
실제로'list [i] .compareTo (list [i + 1]) '라고 말하기로되어있었습니다. 원래 게시물에서 수정했습니다. – Chris
그리고 여전히 문제가 있습니까? 오류가 무엇입니까? – jedison