자바 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 |