[ArrayList] 정렬

14576 단어 JavaJava
  1. Collections.sort()
  2. List.sort()
  3. 사용자 정의

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_INSENSITIVE_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 대신 List객체의 sort로 정렬

사용자 정의

비교할 객체에 직접 Comparable 인터페이스를 implements하여 구현
또는 비교용 클래스에 Comparator interface를 implements하여 구현

좋은 웹페이지 즐겨찾기