2차원 배열을 정렬하는 방법
Comparator 을 오버라이딩하여 정렬 기준을 제시하면 된다.
1) 첫번째 요소를 고려해서 정렬한다면
arr { {1,3}, {2,5}, {1,1} } 일 때
Arrays.sort(arr, Comparator.comparingInt(o1->o1[0]));
하게 되면 arr{ {1,3}, {1,1}, {2,5} } 이렇게 오름차순으로 정렬된다.
2) 두번째 요소도 같이 고려하고 싶다면
Arrays.sort(arr, (o1,o2) -> {
if(o1[0] == o2[0]){ // 0번째 요소가 같으면 1번 째 요소로 비교
return Integer.compare(o1[1], o2[1]);
}
else { // 요소 비교
return Integer.compare(o1[0], o2[0]);
}
});
하게 되면 arr { {1,1}, {1,3}, {2,5} } 가 오게 된다.
문자열 배열 비교 방법
Arrays.sort(tickets, new Comparator<String[]>() {
@Override
public int compare(String[] o1, String[] o2) {
return o1[1].compareTo(o2[1]);
}
});
위와 같이 하면 a ~ z 순으로 정렬하게 됩니다.
'JAVA' 카테고리의 다른 글
JAVA Enum 에러 (0) | 2023.04.09 |
---|---|
stream 활용해 list 최소, 최대값 구하기 (0) | 2022.11.20 |
Queue와 BFS (1) | 2022.09.30 |
정렬과 lambda (0) | 2022.09.29 |
PriorityQueue ( 우선순위큐 ) (0) | 2022.09.27 |