Study/Java

자바 2차원 배열 정렬하기

개발개발개발 2020. 9. 1. 22:30

자바 1차원 배열 정렬의 경우 Arrays.sort() 함수를 통해 쉽게 정렬할 수 있다. 

 

2차원 배열의 경우, 첫번째 원소를 기준으로 정렬할 때는 2가지 방법이 있다.

 

첫 번째는 람다 방식과 Integer의 compare함수를 사용

 

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

그리고 정렬 했을 때 첫 번째 배열의 원소 크기가 같다면 두 번째 배열 원소까지 비교하여 정렬한다. 

 

 

두 번째는 Comparator 방식

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

이 방법 또한 위와 동일하게 첫 번째 배열 원소가 같을 경우 두 번째 배열까지 비교하여 정렬한다.

 

 

TEST

 

정렬 전

int[][] arr = {{4,3},{4,2},{3,3},{2,4},{1,5}};

정렬 후

1 5 
2 4 
3 3 
4 2 
4 3 

각자가 편한 방식대로 아무거나 쓰면 될 듯

'Study > Java' 카테고리의 다른 글

[Java] Servlet(서블릿) 이란?  (0) 2022.03.01
[Java] 직렬화(Serialization)  (0) 2021.10.25
[Java] 멀티 쓰레드(Multi Thread)  (0) 2021.09.14
[Java] 파일 입출력 정리  (0) 2021.09.08