[JAVA] 제네릭이 String 인 ArrayList 정렬하기 (ArrayList sort / String sort)
문자열 “aaaa”, “aaa”, “aaab”, “aab” 를 정렬(오름차순 정렬)하면 다음과 같다.
[aaa, aaaa, aaab, aab]
문자열 “aaaa”, “aaa”, “aaab”, “aab” 를 역정렬(내림차순 정렬)하면 다음과 같다.
[aab, aaab, aaaa, aaa]
1. 문자열(String)의 오름차순 정렬 (간단한 방법)
자바에서 ArrayList 를 정렬(오름차순으로 정렬)하려면 Collections.sort 메서드를 사용하면 된다.
제네릭(Generic)이 String 인 ArrayList 도 마찬가지다.
|
ArrayList<String> strList = new ArrayList<String>(); strList.add(“aaaa”); // 리스트를 오름차순으로 정렬 |
결과
|
[aaa, aaaa, aaab, aab] |
2. 문자열(String)의 내림차순 정렬 (간단한 방법)
ArrayList 를 역정렬(내림차순으로 정렬)하려면 Collections.sort 메서드를 사용하고, 이어서 Collections.reverse 메서드를 사용하면 된다.
|
ArrayList<String> strList = new ArrayList<String>(); strList.add(“aaaa”); // 리스트를 내림차순으로 정렬 Collections.reverse(strList); |
결과
|
[aab, aaab, aaaa, aaa] |
3. 문자열(String)의 오름차순 정렬 (Comparator 인터페이스의 compare 메서드를 직접 구현)
Comparator 인터페이스의 compare 메서드를 직접 구현해서 정렬하는 방법도 있다.
제네릭이 String 또는 Integer 일 때는 그다지 쓸모없어보이는데, 특수한 정렬 규칙을 적용하고 싶다거나 제네릭이 직접 만든 클래스일 경우 사용하면 좋다.
compare 메서드를 구현(임플리먼트)할 때, 0 을 리턴하면 순서가 바뀌지 않는다.
두 값이 같다면 0을 반환하고, 첫 번째 값이 크다면 양수(1)를, 두 번째 인자가 크다면 음수(-1)를 반환하면 된다.
|
public static void main(String[] args) { ArrayList<String> strList = new ArrayList<String>(); strList.add(“aaaa”); // 리스트를 오름차순으로 정렬 @Override |
결과
|
[aaa, aaaa, aaab, aab] |
4. 문자열(String)의 내림차순 정렬 (Comparator 인터페이스의 compare 메서드를 직접 구현)
항목 3번의 코드에서 부등호 방향만 바꿔주면 된다.
|
public static void main(String[] args) { ArrayList<String> strList = new ArrayList<String>(); strList.add(“aaaa”); // 리스트를 오름차순으로 정렬 @Override |
결과
|
[aab, aaab, aaaa, aaa] |
#Java 문자열 정렬
#Java 문자열 쏘트
#Java 문자열 Sort
#Java 스트링 정렬
#Java 스트링 쏘트
#Java 스트링 Sort
#Java String 정렬
#Java String 정렬
#Java String 쏘트
#자바 문자열 정렬
#자바 문자열 쏘트
#자바 문자열 Sort
#자바 스트링 정렬
#자바 스트링 쏘트
#자바 스트링 Sort
#자바 String 정렬
#자바 String 정렬
#자바 String 쏘트