컬렉션 프레임워크 (Collection Framework) - 3.3 PriorityQueue

CJI0524·2024년 7월 10일

Java/Collection Framework

목록 보기
10/26

1. PriorityQueue 클래스

Queue 인터페이스의 구현체 중의 하나로, 저장한 순서에 관계없이 우선순위(Priority)가 높은 것부터 꺼내게 된다든 특징을 가진다. 저장공간으로 배열을 사용하며 각 요소를 힙(heap)이라는 자료구조의 형태로 저장한다. 힙은 이진 트리의 한 종류로 가장 큰 값이나 가장 작은 값을 빠르게 찾을 수 있다는 특징이 있다.

2. PriorityQueue 클래스에 정의된 메서드 목록

반환타입이 boolean인 메서드들은 작업에 성공하거나 사실이면 true, 아니면 false를 반환한다.

2.1. 생성자


메서드기능
PriorityQueue()초기 용량이 11인 빈 PriorityQueue를 생성
PriorityQueue(int initialCapacity)지정된 초기 용량을 갖는 빈 PriorityQueue를 생성
PriorityQueue(Collection c)지정된 컬렉션(c)의 요소들을 포함하는 PriorityQueue를 생성
PriorityQueue(Comparator comparator)지정된 비교자를 사용하여 순서를 결정하는 빈 PriorityQueue를 생성
PriorityQueue(int initialCapacity, Comparator comparator)지정된 초기 용량과 비교자를 사용하는 빈 PriorityQueue를 생성

2.2. 삽입 / 탐색 / 삭제 메서드

삽입

메서드기능
boolean add(Object o)
boolean addAll(Collection c)
지정된 객체(o) 또는 Collection(c)의 객체들을 PriorityQueue에 추가.
add(Object o) 사용 시 저장공간이 부족하면 IllegalStateException 발생

탐색

메서드기능
boolean contains(Object o)
boolean containsAll(Collection c)
지정된 객체(o) 또는 Collection(c)의 객체들이 포함되어 있는지 확인.

삭제

메서드기능
boolean remove(Object o)
boolean removeAll(Collection c)
지정된 객체(o) 또는 Collection(c)의 객체들을 삭제.
boolean retainAll(Collection c)지정된 Collection에 포함된 객체만을 남기고, 다른 객체들은 PriorityQueue에서 삭제
집합의 교집합 개념과 유사함.
void clear()PriorityQueue의 모든 객체를 삭제

2.3. Queue에서 활용하는 메서드 ★

다음의 메서드는 예외를 발생시키는 메서드이다.

메서드기능
boolean add(Object o)지정된 객체를 PriorityQueue에 추가.
저장공간이 부족하면 IllegalStateException 발생
Object remove()PriorityQueue에서 첫번째 객체를 꺼내 반환.
비어있으면 NoSuchElementException 발생
Object element()삭제없이 첫번째 요소를 읽음.
비어있으면 NoSuchElementException 발생

다음의 메서드는 예외를 발생시키지 않는 메서드이다.

메서드기능
boolean offer(Object o)PriorityQueue에 객체를 저장
Object poll()PriorityQueue에서 첫번째 객체를 꺼내서 반환
비어있으면 null을 반환
Object peek()삭제없이 첫번째 요소를 읽음
비어있으면 null을 반환

2.4. 추가 핵심 기능

Object 메서드

메서드기능
boolean equals(Object o)동일한 PriorityQueue인지 확인
int hashCode()PriorityQueue의 해시 코드를 반환

컬렉션에 저장된 요소 접근

메서드기능
Iterator iterator()해당 PriorityQueue의 iterator를 얻어서 반환

컬렉션 상태 체크 / 변경

메서드기능
boolean isEmpty()PriorityQueue가 비어있는지 확인
int size()PriorityQueue에 저장된 객체의 개수를 반환
Comparator comparator()PriorityQueue에서 사용되는 비교자를 반환.
사용된 비교자가 없다면 null을 반환

2.5. 기타

메서드기능
Object[] toArray()PriorityQueue에 저장된 객체를 객체배열(Object[])로 반환
Object[] toArray(Object[] a)지정된 배열에 PriorityQueue의 객체를 저장해서 반환

3. 해당 게시글 작성에 참고한 글 목록

자바의 정석 3판 (저자 : 남궁성)
Java Collections Framework Video Tutorial
오라클 Java 문서

profile
개발돌이

0개의 댓글