JAVA | 배열 Arrays.sort() 기준 재정의 : Comparator 익명 클래스 구현

728x90

🏓 JAVA | 배열 Arrays.sort() 기준 재정의 : Comparator 익명 클래스 구현

🟧 1) 1차원 배열 sort 재정의

//1차원 배열 내림차순 sort - compareTo 사용
Integer[] nums6 = {9,8,1,3,2};
Arrays.sort(nums6, new Comparator<Integer>() {
    @Override
    public int compare(Integer o1, Integer o2) { //두 숫자 비교
        return o1 - o2; //오름차순 
                //return o2 - o1; //내림차순 
    }
});

🟧 2) 2차원 배열 sort 재정의

int[][] arr = new int[][2]{{5,40},{3,50},{1,30},{4,20},{2,10}};

// 1. Comparator 익명 클래스 구현
Arrays.sort(arr, new Comparator<int[]>() {
    //compare() 메소드 재정의 
        @Override
    public int compare(int[] o1, int[] o2) {       
                return o1[0]-o2[0]; // 첫번째 숫자 기준 오름차순 {1,30}{2,10}{3,50}{4,20}{5,40}
        //return o2[0]-o1[0]; // 첫번째 숫자 기준 내림차순 {5,40}{4,20}{3,50}{2,10}{1,30}
        //return o1[1]-o2[1]; // 두번째 숫자 기준 오름차순 {2,10}{4,20}{1,30}{5,40}{3,50}
        //return o2[1]-o1[1]; // 두번째 숫자 기준 내림차순 {3,50}{5,40}{1,30}{4,20}{2,10}
    }
});
728x90