Saturday, December 30, 2006
Java/자바] 문자열 배열 내림차순(역순) 정렬(소팅/소트); Sort Descending Order, String Array
자바로 소팅을 할 때에는 역순 즉 내림차순(Descending Order)으로 소팅하는 간단한 방법이, 제가 알아본 바로는 없었습니다.
물론, 오름차순으로 소팅한 후, 그 배열의 순서를 뒤집어주면 역순 정렬이 됩니다. 이 방법의 속도가 느린 줄 알았는데, 비교 함수를 사용하는 것보다 빠르다고 하더군요. 각 요소를 소트할 때마다 비교 함수를 호출하는 데에 시간이 많이 걸리지만, 배열 요소 순서를 단순히 뒤집어 주는 것에는 시간이 거의 걸리지 않기 때문일 것입니다.
그래서 뒤집어 주는 방법으로 예제를 만들었습니다.
파일명: Foo.java
리스트로 변환하지 않고 직접 뒤집기: ▶▶ Java/자바] 문자열(String) 배열 내림차순(역순) 정렬(소팅/소트); Sort Descending Order, String Array
▶▶ 자바/Java] 문자열 숫자 배열, 정렬(소팅;소트) 예제; Sort
물론, 오름차순으로 소팅한 후, 그 배열의 순서를 뒤집어주면 역순 정렬이 됩니다. 이 방법의 속도가 느린 줄 알았는데, 비교 함수를 사용하는 것보다 빠르다고 하더군요. 각 요소를 소트할 때마다 비교 함수를 호출하는 데에 시간이 많이 걸리지만, 배열 요소 순서를 단순히 뒤집어 주는 것에는 시간이 거의 걸리지 않기 때문일 것입니다.
그래서 뒤집어 주는 방법으로 예제를 만들었습니다.
문자 배열 내림차순 정렬(Sorting) 예제
파일명: Foo.java
import java.util.*;
public class Foo {
public static void main(String[] args) {
String[] a = { "bbb", "AAA", "DDD", "똠방각하", "CCC", "aaa" };
Arrays.sort(a, String.CASE_INSENSITIVE_ORDER);
//////////////////////////////////////////////////
// 배열을 리스트로 변환
List<String> list = Arrays.asList(a);
// 리스트 뒤집어 주기
Collections.reverse(list);
//////////////////////////////////////////////////
// 리스트를 배열로 다시 변환
a = list.toArray(new String[list.size()]);
// 순서 뒤집어진 배열을 문자열로 변환 후 출력
String s = Arrays.toString(a);
System.out.println(s);
// 출력 결과: [똠방각하, DDD, CCC, bbb, aaa, AAA]
}
}
public class Foo {
public static void main(String[] args) {
String[] a = { "bbb", "AAA", "DDD", "똠방각하", "CCC", "aaa" };
Arrays.sort(a, String.CASE_INSENSITIVE_ORDER);
//////////////////////////////////////////////////
// 배열을 리스트로 변환
List<String> list = Arrays.asList(a);
// 리스트 뒤집어 주기
Collections.reverse(list);
//////////////////////////////////////////////////
// 리스트를 배열로 다시 변환
a = list.toArray(new String[list.size()]);
// 순서 뒤집어진 배열을 문자열로 변환 후 출력
String s = Arrays.toString(a);
System.out.println(s);
// 출력 결과: [똠방각하, DDD, CCC, bbb, aaa, AAA]
}
}
리스트로 변환하지 않고 직접 뒤집기: ▶▶ Java/자바] 문자열(String) 배열 내림차순(역순) 정렬(소팅/소트); Sort Descending Order, String Array
▶▶ 자바/Java] 문자열 숫자 배열, 정렬(소팅;소트) 예제; Sort
tag: java
자바 | Java
<< Home