ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Java] Comparator
    Java 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

    'Java' 카테고리의 다른 글

    [Java] BigInteger 다루기  (0) 2022.10.02
    [Java] Map 성적관리 프로그램  (0) 2022.09.19
    [Java] Set 성적관리 프로그램  (0) 2022.09.19
    [Java] ArrayList 성적관리 프로그램  (0) 2022.09.19
    [Java] 참조 자료형  (0) 2022.07.09
Designed by Tistory.