본문 바로가기
Java & Kotlin

PriorityQueue (우선순위 큐)

by kiwi_wiki 2023. 7. 7.

1. PriorityQueue?

일반적인 큐의 구조 FIFO(First In First Out)를 가지지만 데이터가 들어온 순서가 아닌 우선순위에 따라 순위가 높은 데이터가 먼저 나가는 자료구조이다.

우선순위 큐에 저장할 객체는 필수적으로 Comparable Interface를 구현해야 하며, compareTo()를 통해 해당 객체에서 처리할 우선순위 조건을 리턴해주면 PriorityQueue가 순위가 높은 객체를 추출해준다.

 

PriorityQueue는 Heap을 이용하여 구현하는 것이 일반적이다.

(최대 값이 우선순위인 큐는 최대 힙, 최소 값이 우선순위인 큐는 최소 힙)

2. method

priorityQueue.add(1)	// 값 1 추가. 문제 발생시 exception 반환
priorityQueue.offer(1)	// 값 1 추가. 문제 발생시 false 반환

priorityQueue.remove()	// 우선순위 높은 값 제거. 비어있다면 exception 반환
priorityQueue.poll()	// 우선순위 높은 값 반환 후 제거. 비어있다면 null 반환
priorityQueue.clear()	// 모든 값 제거. 초기화

priorityQueue.peek()	// 우선순위 높은 값 반환

3. 동작

데이터 추가

데이터 삭제

728x90
반응형

'Java & Kotlin' 카테고리의 다른 글

Kotlin?  (0) 2022.08.28
Java의 특징  (0) 2021.01.15