이론 정리/java
java배열 다중 정렬하기
철매존
2021. 9. 6. 21:42
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를 사용하면 된다.
반응형