Java
[Java] Comparator
다콩잉
2023. 12. 3. 18:16
Comparator를 사용하여 문자열 리스트를 다양한 방식으로 정렬할 수 있다.
1. 역순으로 정렬
Collections.sort(list, Comparator.reverseOrder());
2. 문자열의 길이에 따라 정렬
Collections.sort(list, Comparator.comparingInt(String::length));
2. 대소문자를 구분하지 않고 알파벳 순으로 정렬
Collections.sort(list, String.CASE_INSENSITIVE_ORDER);
2. 문자열의 길이에 따라 정렬
Collections.sort(list, Comparator.comparingInt(Integer::parseInt));
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
public class SortingExamples {
public static void main(String[] args) {
// 문자열 리스트 생성
List<String> stringList = new ArrayList<>();
stringList.add("banana");
stringList.add("Apple");
stringList.add("orange");
stringList.add("grape");
stringList.add("Kiwi");
// 1. 사전순으로 정렬 (대소문자 구분)
Collections.sort(stringList, Comparator.naturalOrder());
System.out.println("1. Natural Order: " + stringList);
// 2. 대소문자 구분 없이 사전순으로 정렬
Collections.sort(stringList, String.CASE_INSENSITIVE_ORDER);
System.out.println("2. Case-Insensitive Order: " + stringList);
// 3. 문자열의 길이에 따라 정렬 (짧은 순서)
Collections.sort(stringList, Comparator.comparingInt(String::length));
System.out.println("3. Sort by Length: " + stringList);
// 4. 문자열의 길이에 따라 정렬 (긴 순서)
Collections.sort(stringList, Comparator.comparingInt(String::length).reversed());
System.out.println("4. Sort by Length (Descending): " + stringList);
// 5. 대소문자 구분 없이 문자열의 길이에 따라 정렬 (짧은 순서)
Collections.sort(stringList, Comparator.comparingInt(String::length)
.thenComparing(String.CASE_INSENSITIVE_ORDER));
System.out.println("5. Sort by Length, Case-Insensitive: " + stringList);
}
}
728x90