먼저 배열 이외의 다른 것을 사용할 수있는 정렬 방법을 더 잘 알고 있다고 말해 보겠습니다. 사용자가 배열에 문자열을 저장하고, 삭제하고, 표시하고, 정렬 할 수있는 클래스에 대한 할당입니다. 나는 여기에서 어디로 가야 할 지 완전히 잃어버린다. 버블 정렬을 사용하려고 노력하고 있는데, 배열의 첫 번째 항목이 무엇이든간에 정렬되지 않습니다. null 값을 필터링하여 null 포인터 예외를 피할 수 있는데, 이는 if 문이 너무 길기 때문입니다.Java- compareTo() 메서드를 사용하여 문자열 배열을 수동으로 정렬
private void sortItems(String[] cargohold) {
String temp;
for (int i = 0; i < cargohold.length - 1; i++) {
for (int j = 1; j < cargohold.length; j++) {
if (cargohold[i] != null && cargohold[j] != null && (cargohold[i].compareTo(cargohold[j]) < 0)) {
temp = cargohold[j];
cargohold[j] = cargohold[i];
cargohold[i] = temp;
}
}
}
}
나는이 작업을 여러 가지 방법으로 시도해 봤지만 제대로 작동하지 않아야하는 이유를 찾을 수 없습니다. 예를 들어 스택 오버 플로우에서 찾을 수있는 모든 것을 훑어 보았고 아무도 같은 문제를 겪지 않았습니다.
요약하면 "Derp", "Herp", "Sam", "Alfred", "Bill"등 5 개의 문자열이있을 수 있습니다.이 종류는 "Derp", "Alfred", "Bill" , "Herp", "Sam". 안내에 미리 감사드립니다.
우선 거품 형이 아닙니다. 첫 번째 문제는 – WIR3D
@ WIR3D입니다. 이유가 무엇인지 설명해야합니다. 버블 정렬의 내부 루프는 일반적으로 'i + 1'이 아니라 'i + 1'에서 시작합니다. 옆으로 : 변수 뒤에 ('string cargohold []'대신에'String [] cargohold)가 아닌) 타입 뒤에 배열 브래킷을 넣으십시오. – Turing85