[JAVA] 배열의 정렬

현빵·2023년 11월 29일

java

목록 보기
10/10
post-thumbnail

java.util.Arrays클래스 import 필요


📈오름차순

Arrays.sort(배열명);

  • int, String 자료형 상관없이 동일하다.
int[] arr = {3, 2, 6, 4, 1, 5};
Arrays.sort(arr); // 1, 2, 3, 4, 5, 6

📉내림차순

Arrays.sort(배열명, Collections.reverseOrder());

  • int는 불가능, String은 가능하다.
    • int가 불가능한 이유는 sort메소드에 있다.

    sort 메소드

    public static <T> void sort(T[] a, Comparator<? super T> c) {
    	if (c == null) { // 오름차순
      	sort(a);
      } else { // 내림차순
      	if (LegacyMergeSort.userRequested)
          	leegacyMergeSort(a, c);
          else
          	TimSort.sort(a, 0, a.length, c, null, 0, 0);
      }
    }
    • 내림차순을 위해 받아오는 매개변수가 Comparator<? super T> c인데, 객체로 받아오게 되어있어 int는 기본형으로 불가능하다.

int

// int -> Integer 형변환
int[] arr = {3, 2, 6, 4, 1, 5};
Integer[] arr1 = Arrays.stream(arr).boxed().toArray(Integer[]::new);
Arrays.sort(arr, Collections.reverseOrder()); // 6, 5, 4, 3, 2, 1

String

String[] arr = {"d", "a", "c", "b"};
Arrays.sort(arr, Collections.reverseOrder()); // d, c, b, a

0개의 댓글