상상쓰

[java] PriorityQueue(우선순위 큐) 소개 본문

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
		}
	}
}
Comments