https://velog.io/@gillog/Java-Priority-Queue%EC%9A%B0%EC%84%A0-%EC%88%9C%EC%9C%84-%ED%81%90
[Java] Priority Queue(우선 순위 큐)
PriorityQueue란 우선순위 큐로써 일반적인 큐의 구조 FIFO(First In First Out)를 가지면서, 데이터가 들어온 순서대로 데이터가 나가는 것이 아닌 우선순위를 먼저 결정하고 그 우선순위가 높은 데이터
velog.io
우선순위 큐란?
큐 : FIFO 구조로 먼저 들어간 값이 먼저 나오는 자료구조이다.
우선순위 큐 : 들어간 값 중 우선순위가 가장 높은 값이 먼저 나오는 자료구조이다.
Java에서 우선순위 큐
java에서 우선순위 큐는 java.util.PriorityQueue 클래스를 통해 사용할 수 있다.
사용 방법은 일반 queue와 같다.
// 작은 수가 우선순위가 높음
PriorityQueue<Integer> pq1 = new PriorityQueue<>();
// 큰 수가 우선순위가 높음
PriorityQueue<Integer> pq2 = new PriorityQueue<>(Collections.reverseOrder());
pq1.offer(10);
pq1.add(20);
pq1.poll();
pq1.remove();
pq1.peek();
pq1.isEmpty();
직접 생성한 객체에 대해 우선순위 큐를 사용하기 위해서는 Comparable 인터페이스를 구현해 줘야 한다.
https://velog.io/@jidam03/Comparable%EA%B3%BC-Comparator
Comparable과 Comparator
출처Comparable과 Comparartor는 모두 인터페이스이다. Comparable, Comparator를 사용하려면 인터페이스 내에 선언된 메소드를 구현해야 한다.Comparable 인터페이스에는 CompareTo(T o) 메서드 하나가 선언되어
velog.io
Comparalbe 인터페이스 관련해서는 위 글을 참고하면 된다.
'알고리즘, 자료구조' 카테고리의 다른 글
Dynamic Programming (0) | 2023.12.16 |
---|---|
이분탐색 (0) | 2023.10.20 |
분할 정복 (1) | 2023.10.10 |