Language/Java
PriorityQueue에서의 Comparator 사용법
뚜sh뚜sh
2023. 10. 6. 23:43
아래 코드는 우선순위 큐의 Comparator을 통해 새로운 조건을 제공함
- 조건1) 절댓값이 같을 경우, el1이 el2보다 큰 순서로 취급되어 el2의 우선순위가 더 높아 음수가 먼저 출력됨
- 조건2) 절댓값이 다를 경우, abs_el1이 abs_el2보다 큰 순서로 취급되어 abs_el2의 우선순위가 더 높아 작은 값이 출력됨
PriorityQueue<Integer> priorityQueue = new PriorityQueue<>((el1, el2) -> {
int abs_el1 = Math.abs(el1);
int abs_el2 = Math.abs(el2);
if (abs_el1 == abs_el2) {
return el1 > el2 ? 1 : -1;
}
return abs_el1 - abs_el2;
});