Queue는 먼저 들어온 값이 먼저 나가는, 선입선출(First In First Out) 규칙을 따르는 데이터 자료형입니다. 

PriorityQueue는 먼저 들어온 값이 아니라, 정해진 우선순위에 따라 먼저 나가는 규칙을 따르는 특별한 Queue입니다.

 

비유를 하자면 Queue가 은행에서 번호표를 뽑는 것이라면, PriorityQueue는 병원에서 응급환자가 먼저 진료를 받는 것과 같습니다.

 

자바에서는 PriorityQueue를 Min PriorityQueue로 구현했기 때문에, 그냥 생성하게되면 우선순위가 낮은 순서대로 출력됩니다. 우선순위가 높은 순으로 출력하고 싶다면, 생성자에 Comparator를 전달해주는 방법이 있습니다.

 

PriorityQueue 선언

// 우선순위가 낮은 순서대로
PriorityQueue<Integer> pq1 = new PriorityQueue<Integer>();
PriorityQueue<String> pq3= new PriorityQueue<String>();

// 우선순위가 높은 순서대로
PriorityQueue<Integer> pq2 = new PriorityQueue<Integer>(Collections.reverseOrder());
PriorityQueue<String> pq4= new PriorityQueue<String>(Collections.reverseOrder());

PriorityQueue 값 추가

PriorityQueue 값 삭제

 

반응형

'알고리즘' 카테고리의 다른 글

[Java] 자바 Linked List 사용법 및 예제  (0) 2022.04.27
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기