우선순위 큐(Priority Queue)란?
- 큐: 데이터를 일시적으로 쌓아두기 위한 자료구조로 스택과는 다르게 FIFO(First In First Out)의 구조, 먼저 들어온 데이터가 먼저 나가는 구조임
- PriorityQueue: 먼저 들어온 순서대로 데이터가 나가는 것이 아닌 우선순위를 먼저 결정하고 그 우선순위가 높은 엘리먼트가 먼저 나가는 자료구조
-> 우선순위 큐는 힙을 이용하여 구현함.
Priority Queue 선언
//priorityQueue 선언 (오름차순)
PriorityQueue<Integer> priorityQueue = new PriorityQueue<>();
//priorityQueue 선언 (내림차순)
PriorityQueue<Integer> priorityQueue = new PriorityQueue<>(Collections.reverseOrder());
Priority Queue 값추가 및 우선순위 높은값 출력
// 값 추가
priorityQueue.add(n);
또는
priorityQueue.offer(n);
// 우선순위 높은 값 출력
priorityQueue.peek();
Priority Queue 값삭제
// 첫번째 값을 반환하고 제거 비어있다면 null
priorityQueue.poll();
// priorityQueue에 첫번째 값 제거
priorityQueue.remove();
// priorityQueue에 초기화
priorityQueue.clear();