Programming
[java] PriorityQueue(우선순위 큐) 소개
상상쓰
2021. 10. 24. 00:14
java의 PriorityQueue(우선순위 큐)를 간단히 소개하겠다. python의 heapq랑 같다. 내부가 이진 트리로 이루어져 있다.
import java.util.PriorityQueue;
import java.util.Collections;
class CodeRunner{
public static void main(String[] args){
PriorityQueue<Integer> ascQueue = new PriorityQueue<>();
PriorityQueue<Integer> descQueue = new PriorityQueue<>(Collections.reverseOrder());
for (int i=0;i<10;i++) {
ascQueue.add(i);
descQueue.add(i);
}
// peek() : 제일 우선순위가 높은 값 출력
System.out.println(ascQueue.peek() + " "); // 0
System.out.println(descQueue.peek() + " "); // 9
// poll() : 제일 우선순위가 높은 값 출력 후, Queue 에서 삭제
for (int i=0;i<10;i++) {
System.out.print(ascQueue.poll() + " "); // 0 1 2 3 4 5 6 7 8 9
}
System.out.println();
for (int i=0;i<10;i++) {
System.out.print(descQueue.poll() + " "); // 9 8 7 6 5 4 3 2 1 0
}
}
}