이차원 배열의 정렬 - Arrays.sort(arr, Comparator) / JAVA

Tech/Java 2022. 12. 19. 23:13
728x90
728x90

1차원배열의 정렬

import java.util.Arrays;

// 오름차순
Arrays.sort(arr);

// 내림차순 기본타입에 선언 불가!! 참조타입에 가능
Arrays.sort(arr, Collections.reverseOrder());

//참조타입 변환(ex - int[])
Integer[] refArr = Arrays.stream(arr).boxed().toArray(Integer[]::new);
//변환 후 정렬
Arrays.sort(refArr, Collections.reverseOrder());

2차원배열의 정렬

import java.util.Arrays;
import java.util.Comparator;

// Comparator는 인터페이스이기때문에 오버라이딩
Arrays.sort(arr, new Comparator<int[]>() {

    @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}
    }


});

 

// 람다식 활용
Arrays.sort(arr, (o1, o2) -> o1[1] - o2[1]);

 

//String 배열 정렬
Arrays.sort(arr, (o1, o2) -> o1[1].compareTo(o2[1]));
728x90
300x250
mag1c

mag1c

2년차 주니어 개발자.

방명록