https://velog.io/@gillog/Java-Priority-Queue%EC%9A%B0%EC%84%A0-%EC%88%9C%EC%9C%84-%ED%81%90
우선순위 큐란?
큐 : 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
Comparalbe 인터페이스 관련해서는 위 글을 참고하면 된다.
'알고리즘, 자료구조' 카테고리의 다른 글
Dynamic Programming (0) | 2023.12.16 |
---|---|
이분탐색 (0) | 2023.10.20 |
분할 정복 (1) | 2023.10.10 |