728x90
2차원 배열의 정렬의 경우
int arr[] = {{1,1}, {1,4}, {3,4}, {1,2}};
이렇게 되어있는 배열 arr을
[1,1][1,2][1,4][3,4] 이렇게 배열하려면
Arrays.sort(arr, (o1, o2) -> {
if(o1[0] == o2[0]){
return Integer.compare(o2[1], o1[1]);
}else{
return Integer.compare(o2[0], o1[0]);
}
});
이런 식으로 해 주면 된다.
그러면 만약에 2번, 3번, 4번....이렇게 더 비교하려면 어떻게 할까?
Arrays.sort(arr, (o1, o2) -> {
if(o1[0] == o2[0]){
if(o1[1]==o2[1]{
return Integer.compare(o2[2], o1[2]);
}
return Integer.compare(o2[1], o1[1]);
}else{
return Integer.compare(o2[0], o1[0]);
}
});
이걸 보면 조금 더 감이 잡힐 것이다...
즉, 배열을 o1, o2이렇게 하나씩 비교하여
0번 노드가 같은 경우
1번 노드로 if로 확인해 주고
이거를 계속 반복해주면 된다.
간단하게 말하자면 o1[여기를 ] o2[기준으로] compare를 사용하면 된다.
'이론 정리 > java' 카테고리의 다른 글
JAVA에서 ArrayList와 LinkedList에 관해, 그리고 vector (0) | 2022.02.26 |
---|---|
java에서 String & StringBuffer & StringBuilder에 관해 (0) | 2022.02.25 |
java HashMap의 Thread-Safe이슈와 HashTable, ConcurrentHashMap (0) | 2022.02.25 |
패캠 - java/spring 웹 개발 강의 수업 정리(2) (0) | 2021.06.28 |
패캠 - java/spring 웹 개발 강의 수업 정리(1) (0) | 2021.06.28 |