2차원 배열을 바로 Array.sort() 를 통해 정렬하려고 하면 java.lang.ClassCastException이 뜬다.
이유는, 비교 기준이 없기 때문이다.
따라서 이때는 Comparable, Comparator 인터페이스를 구현해서 정렬기준을 추가해 줘야 한다.
이는 이차원 배열 뿐만 아니라 객체 비교시에도 동일하다.
예제 코드는 아래와 같다.
Arrays.sort(arr, new Comparator<int[]>(){
@Override
public int compare(int[] o1, int[] o2){
return o1[0] - o2[0]; // 이렇게 하면, 첫번째 순서 기준 오름차순이된다.
}
}
예를 들어서, int[][] arr = new int[][]{{5, 40}, {3, 50}, {1, 30}, {4, 20}} 이런식이면, 위에 sort를 통해
{1, 30}, {3, 50}, {4, 20}, {5, 40} 이 된다.
만약에 반대로 내림차순 하고 싶으면 o2[0] - o1[0] (첫번째 index 기준).