Vienna

Chapter 11) 컬렉션 프레임워크 - PriorityQueue와 Deque 본문

언어/Java의 정석

Chapter 11) 컬렉션 프레임워크 - PriorityQueue와 Deque

아는개발자 2023. 5. 21. 21:58

◇ PriorityQueue

Queue 인터페이스의 구현체 중의 하나. 저장한 순서에 관계 없이 우순선위가 높은 것부터 꺼내게 된다는 특징이 있다.

그리고 null 또한 저장할 수 없다! (null을 저장하려 시도한다면  nullPointerException이 발생.)

저장 공간을 배열로 사용하며, 각 요소를 힙(heap) 자료구조의 형태로 저장한다.

import java.util.*;

public class Main {

    public static void main(String[] args) {
        Queue pq = new PriorityQueue();
        pq.offer(3); // 오토 박싱이 일어난다. pq.offer(new Integer(3));
        pq.offer(1);
        pq.offer(4);
        pq.offer(5);
        pq.offer(2);
        System.out.println(pq);
        
        Object obj = null;
        while((obj = pq.poll())!=null){
            System.out.println("obj = " + obj);
        }
    }
}

출력 예제.

 Deque

Queue의 변형으로, 한 쪽 끝으로만 추가/삭제할 수 있는 Queue와 달리, Deque은 양쪽 끝에 추가/삭제가 가능.

Comments