728x90
이번에는 자바의 Priority Queue의 사용법을 알아보겠습니다.
Priority Queue는 조건을 통해 최소 힙 최대 힙 자료구조로 선언할 수 있습니다.
아래 블로그 글을 참고히여 약간의 수정과 요약을 정리했습니다.
https://coding-factory.tistory.com/603
[Java] PriorityQueue(우선순위 큐) 클래스 사용법 & 예제 총정리
우선순위 큐(Priority Queue)란? 일반적으로 큐는 데이터를 일시적으로 쌓아두기 위한 자료구조로 스택과는 다르게 FIFO(First In First Out)의 구조 즉 먼저 들어온 데이터가 먼저 나가는 구조를 가집니다
coding-factory.tistory.com
Priority Queue 선언
import java.util.PriorityQueue; //import
//int형 priorityQueue 선언 (우선순위가 낮은 숫자 순)
PriorityQueue<Integer> priorityQueue = new PriorityQueue<>();
//int형 priorityQueue 선언 (우선순위가 높은 숫자 순)
PriorityQueue<Integer> priorityQueue = new PriorityQueue<>(Collections.reverseOrder());
//String형 priorityQueue 선언 (우선순위가 낮은 숫자 순)
PriorityQueue<String> priorityQueue = new PriorityQueue<>();
//String형 priorityQueue 선언 (우선순위가 높은 숫자 순)
PriorityQueue<String> priorityQueue = new PriorityQueue<>(Collections.reverseOrder());
Priority Queue 값 추가
priorityQueue.add(1); // priorityQueue 값 1 추가
priorityQueue.add(2); // priorityQueue 값 2 추가
priorityQueue.offer(3); // priorityQueue 값 3 추가
.add()
.offer() 메소드 둘다 값을 추가할 수 있습니다.
offer는 큐가 가득차서 더이상 넣을 수 없으면 false를 반환하고 따로 에러를 throw하지 않습니다.
add는 큐가 가득찬 상태에서 넣으면 illegalStateExceptiond을 발생시킵니다.
Priority Queue 값 삭제
priorityQueue.poll(); // priorityQueue에 첫번째 값을 반환하고 제거 비어있다면 null
priorityQueue.remove(); // priorityQueue에 첫번째 값 제거
priorityQueue.clear(); // priorityQueue에 초기화
.poll() 메소드는 헤드를 반환하고 제거 합니다.
.remove()메소드 삭제를 실행합니다.
.clear()메소드는 큐의 값을 비웁니다.
Priority Queue 값 조회
PriorityQueue<Integer> priorityQueue = new PriorityQueue<>();//int형 priorityQueue 선언
priorityQueue.offer(2); // priorityQueue에 값 2 추가
priorityQueue.offer(1); // priorityQueue에 값 1 추가
priorityQueue.offer(3); // priorityQueue에 값 3 추가
priorityQueue.peek(); // priorityQueue에 첫번째 값 참조 = 1
.peek() 메소드로 가장 우선순위가 높은값을 반환할 수 있습니다.
'자바 자료구조' 카테고리의 다른 글
☕️ [JAVA] HashMap (0) | 2021.10.12 |
---|---|
☕️ [JAVA] LinkedList (0) | 2021.10.12 |
☕️ [JAVA] ArrayList (0) | 2021.10.12 |
☕️ [JAVA] 이진 탐색트리 구현 (0) | 2021.10.08 |
☕️ [JAVA] 해시리니어 구현 (0) | 2021.10.07 |