java

3.[java] 우선순위 큐(priority Queue)

제비랑 2023. 3. 3. 20:37

 

우선순위 큐는 들어간 순서에 상관없이, 설정한 우선순위 조건에 따라, 가장 우선순위가 높은 데이터가 먼저 나오는 구조이다.

데이터 입력을 받을때마다 그때그때 최댓값, 최솟값을 결정해야하고, 최댓값,최솟값이 편집되어도 항상 데이터 그룹의 최댓값,최솟값을 얻기위해서, 우선순위 큐는 최선의 전략이다.

 

 

일반적으로 우선순위 큐는 힙 자료구조를 통해 구현한다.

 

자바에서 우선순위 큐를 선언하기 위해서는 다음과 같이 선언한다.

import java.util.PriorityQueue;

먼저 java.util.PriorityQueue 를 import 해야한다.

PriorityQueue<Integer> pq = new PriorityQueue<>();

가장 큰수를 우선순위로 놓고 싶다면, 다음과 같이 매개변수에 Collections.reverseOrder()를 사용한다.

PriorityQueue<Integer> pq2 = new PriorityQueue<>(Collections.reverseOrder());

pq에 데이터를 삽입하고, 제거하고, 제일우선순위값을 확인하는 코드는 다음과같다.

 

//우선순위 큐에 값 추가
pq.add(3);
pq.offer(4);

//우선순위 큐에 값 제거
pq.remove(4);
pq.remove();
pq.poll();

//우선순위 제일 높은 값 확인
int tmp = pq.peek();

 

'java' 카테고리의 다른 글

2.자바(java)시작하기.자바의 특징, jvm, jre, jdk, intelliJ  (0) 2022.09.12
1.java 시작하기. java란?  (0) 2022.09.06