높은 우선순위의 요소를 먼저 꺼내서 처리하는 구조.
우선순위 큐에 들어가는 원소는 비교가 가능한 기준이 있어야 함.
내부 요소는 힙으로 구성되어 이진트리 구조.
내부구조가 힙으로 구성되어 있기에 시간 복잡도는 O(NLogN).
우선순위를 중요시해야 하는 상황에서 주로 쓰임.
import java.util.PriorityQueue;
import java.util.Collections;
//낮은 숫자가 우선 순위인 int 형 우선순위 큐 선언
PriorityQueue<Integer> priorityQueueLowest = new PriorityQueue<>();
//높은 숫자가 우선 순위인 int 형 우선순위 큐 선언
PriorityQueue<Integer> priorityQueueHighest = new PriorityQueue<>(Collections.reverseOrder());
//삽입 (성공 true 반환)
priorityQueueLowest.add(1); //공간 없어 add 실패시 오류
priorityQueueLowest.offer(100); // 공간 없어 offer 실패 시 false 반환
//추출
priorityQueueLowest.poll(); //첫 번째 값 반환 비어있으면 null
//제거
priorityQueueLowest.remove(); //첫 번째값 제거 비어있으면 오류
//확인
priorityQueueLowest.peek(); //첫 번째 값 반환, 제거는 X 비어있으면 null
priorityQueueLowest.element(); //비어있으면 오류
//초기화
priorityQueueLowest.clear();
https://velog.io/@gillog/Java-Priority-Queue%EC%9A%B0%EC%84%A0-%EC%88%9C%EC%9C%84-%ED%81%90