Java/Java 사용법들

Java에서 int[] 배열 내림차순 정렬하기

jhk828 2021. 6. 29. 02:20

Comparator 클래스를 상속하여 내림차순 하는 방법이나, Collections.reverseOrder()를 사용하는 방법은 Objective 타입의 배열 혹은 Primitive 타입의 Wrapper Class로 이루어진 배열을 정렬할 때만 사용할 수 있다.

따라서 Primitive 타입으로 이루어진 배열을 내림차순 정렬할 때는, 오름차순 정렬 후, 뒤집어서 내림차순 정렬한다.

import java.util.*;

public class Main {
    public static void main(String[] args) {
        ArrayList<Integer> list = new ArrayList<Integer>();
        Collections.sort(list, Collections.reverseOrder());

        int[] arr = new int[] {10, 2, 3, 93, -1};
        System.out.println(Arrays.toString(arr)); // [10, 2, 3, 93, -1]
        reverseSort(arr);
        System.out.println(Arrays.toString(arr)); // [93, 10, 3, 2, -1]
    }

    static void reverseSort(int[] arr) {
        // 오름차순 정렬 후 내림차순 정렬
        Arrays.sort(arr);
        for(int i=0; i<arr.length/2; i++) {
            int tmp = arr[i];
            arr[i] = arr[arr.length-1-i];
            arr[arr.length-1-i] = tmp;
        }
    }
}