ALGORITHM/이론

[Java] 2차원 배열 정렬

SZCODE 2021. 6. 30. 20:27

2차원 배열을 정렬 하기 위해서는 Comparator 클래스를 사용해서 compare 함수를 재정의 해줘야합니다.

 

arr가 [7,6] [2,6] [2,5] 일 때, 오름차순 정렬하는 법

 

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

public class 정렬{
	public static void main(String[] args) {
		int[][] arr = {{7,6},{2,5},{2,6}};

		Arrays.sort(arr,new Comparator<int[]>() {
			@Override
			public int compare(int[] o1, int[] o2) {
				if(o1[0] == o2[0])
					return o1[1]-o2[1];
				else
					return o1[0]-o2[0];
			}
		});

	}
}

 

 

0번째 원소를 비교

return o1[0]-o2[0];

 

 

만약 arr [2,6] [2,5]로, 0번째 원소가 2로 같다면 o1[1]-o2[1]로 비교를 해줍니다.

if(o1[0] == o2[0]) 
	return o1[1]-o2[1];
else 
	return o1[0]-o2[0];

결과

인자1> 인자2, 양수

인자1= 인자2, 0

인자1< 인자2, 음수

 

 

내림차순 하는 법

return o2[0]-o1[0];

 

'ALGORITHM > 이론' 카테고리의 다른 글

우선순위 큐 (Priority Queue)  (0) 2022.10.09
JAVA 2차원 시계방향으로 90도 돌리기  (0) 2022.04.07
Bubble Sort. 버블정렬  (0) 2021.01.05
Insertion sort. 삽입정렬  (0) 2021.01.04
Selection sort. 선택정렬  (0) 2021.01.04