[ArrayList]ソート


  • Collections.sort()
  • List.sort()
  • カスタム
  • 1. Collection.sort()

    import java.util.ArrayList;
    import java.util.Arrays;
    import java.util.Collections;
    public class SortArrayList {
    public static void main(String[] args) {
        // ArrayList 준비
        ArrayList<String> list = new ArrayList<>(Arrays.asList("C", "A", "B", "a"));
        System.out.println("원본 : " + list); // [C, A, B, a]
        
        // 오름차순으로 정렬
        Collections.sort(list);
        System.out.println("오름차순 : " + list); // [A, B, C, a]
        
        // 내림차순으로 정렬
        Collections.sort(list, Collections.reverseOrder());
        System.out.println("내림차순 : " + list); // [a, C, B, A]
        
        // 대소문자 구분없이 오름차순
        Collections.sort(list, String.CASE_INSENSITIVE_ORDER);
        System.out.println("대소문자 구분없이 오름차순 : " + list); // [a, A, B, C]
        
        // 대소문자 구분없이 내림차순
        Collections.sort(list, Collections.reverseOrder(String.CASE_INSENSITIVE_ORDER));
        System.out.println("대소문자 구분없이 내림차순 : " + list); // [C, B, a, A]
        }
    }
    
    Collections.sort(list);
    ArrayListを昇順に並べます.
    Collections.sort(list, Collections.reverseOrder());
    Collections.sort()の2番目のパラメータ
    降順ソートを表すComparatorを渡します.
    ArrayListは降順で並べられています.
    Collections.sort(list, String.CASE_INSENSITIVE_ORDER);
    String.CASE INSSEITIVE ORDERが渡された場合は、大文字と小文字を区別せずに昇順で並べ替えられます.
    ここで、「a」と「A」は同じ順序と見なされるため、元の順序を維持する.
    Collections.sort(list, Collections.reverseOrder(String.CASE_INSENSITIVE_ORDER));
    大文字と小文字を区別せずに降順に並べます.

    List.sort() -java

    import java.util.ArrayList;
    import java.util.Arrays;
    import java.util.Comparator;
    public class SortArrayList {
    public static void main(String[] args) {
          // ArrayList 준비
          ArrayList<String> list = new ArrayList<>(Arrays.asList("C", "A", "B", "a"));
          System.out.println("원본 : " + list); // [C, A, B, a]
          
          // 오름차순으로 정렬
          list.sort(Comparator.naturalOrder());
          System.out.println("오름차순 : " + list); // [A, B, C, a]
          
          // 내림차순으로 정렬
          list.sort(Comparator.reverseOrder());
          System.out.println("내림차순 : " + list); // [a, C, B, A]
          
          // 대소문자 구분없이 오름차순 정렬
          list.sort(String.CASE_INSENSITIVE_ORDER);
          System.out.println("대소문자 구분없이 오름차순 : " + list); // [a, A, B, C]
          
          // 대소문자 구분없이 내림차순 정렬
          list.sort(Collections.reverseOrder(String.CASE_INSENSITIVE_ORDER));
          System.out.println("대소문자 구분없이 내림차순 : " + list); // [C, B, a, A]
          }
    }
    
    Collectionではなくリストオブジェクトのsortでソート

    カスタム


    比較するオブジェクトに直接Compareableインタフェースを実装する
    あるいは、比較用のクラスでComparatorインタフェースを実装する