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]);
    }
});

 

반응형