Java
[JAVA] 2차원 배열 정렬 Arrays.sort
봉주니
2021. 4. 23. 23:33
1차원 배열의 경우, 아래와 같이 오름차순으로 정렬이 된다.
Arrays.sort(arr)
하지만 2차원의 경우에는 compare 함수를 써주면 간단하다.
아래와 같은 2차원 배열이 있다고 가정하면
int[][] arr = {{2,5},{1,5},{1,4}}
아래와 같이 정렬할 수 있다.
Arrays.sort(arr, Comparator.comparingInt(o1 -> o1[0]));
0번째 값을 기준으로 compare을 하는 것을 의미한다.
하지만 0만 기준으로 하면, 아래와 같이 보일 수 있다.
{{1,5},
{1,4},
{2,5}}
따라서, 0번째가 같을때 두번째 요소를 이용하여 정렬을 하면 된다.
0번째가 같으면 1번째를 비교하고, 다른 경우에는 그냥 0번째로 비교한다.
Arrays.sort(arr, (o1, o2) -> {
if(o1[0] == o2[0]){
return Integer.compare(o1[1],o2[1]);
else{
return Integer.compare(o1[0],o2[0]);
}
});
반응형