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