[java] 자바의 우선순위 큐(PriorityQueue) 자료구조 이해하기

우선순위 큐(PriorityQueue)는 데이터가 추가되거나 제거될 때 항상 우선순위에 따라 정렬된 자료구조입니다. 자바에서는 이를 구현한 PriorityQueue 클래스를 제공하고 있습니다.

우선순위 큐(PriorityQueue)의 특징

우선순위 큐는 여러 항목을 담고 있지만, 우선순위가 가장 높은 항목을 먼저 제거하는 자료구조입니다. 이를 통해 우선순위에 따라 항목을 정렬하고 처리할 수 있습니다.

우선순위 큐의 주요 특징은 다음과 같습니다:

자바의 PriorityQueue 클래스 활용

자바에서는 java.util.PriorityQueue 클래스를 활용하여 우선순위 큐를 구현할 수 있습니다. 다음은 PriorityQueue를 사용하여 우선순위 큐를 생성하고 항목을 추가하고 제거하는 간단한 예제코드입니다.

import java.util.PriorityQueue;

public class Main {
    public static void main(String[] args) {
        // 우선순위 큐 생성
        PriorityQueue<Integer> pq = new PriorityQueue<>();

        // 항목 추가
        pq.add(5);
        pq.add(3);
        pq.add(7);
        
        // 가장 높은 우선순위 요소 제거
        System.out.println(pq.poll());  // 출력: 3
    }
}

위 예제코드에서는 PriorityQueue를 사용하여 우선순위 큐를 생성하고, add() 메서드로 항목을 추가하고 poll() 메서드로 가장 높은 우선순위 요소를 제거하고 출력하는 방법을 보여줍니다.

결론

우선순위 큐는 자료를 우선순위에 따라 처리해야 하는 상황에 유용한 자료구조입니다. 자바의 PriorityQueue 클래스를 활용하여 간편하게 우선순위 큐를 구현하고 활용할 수 있습니다.

이상으로 자바에서의 우선순위 큐(PriorityQueue) 자료구조에 대한 간단한 이해를 마치겠습니다.

참고 자료