1. 개요
자바 PriorityQueue에 대해 간단히 알아본다.
2. 코드
2.1. String 기반 (오름차순)
import java.util.PriorityQueue;
public class PQTest {
public static void main(String[] args) {
PriorityQueue<String> priorityQueue = new PriorityQueue<>();
priorityQueue.add("naver");
priorityQueue.add("hanmir");
priorityQueue.add("empas");
priorityQueue.add("daum");
priorityQueue.add("altavista");
priorityQueue.add("yahoo");
priorityQueue.add("google");
priorityQueue.add("sarc");
while (priorityQueue.size() > 0) {
String poll = priorityQueue.poll();
System.out.println(poll);
}
}
}
[결과]
altavista daum empas google hanmir naver sarc yahoo
2.2. String 기반 (내림차순)
Integer 같은 경우는 PriorityQueue<String> priorityQueue = new PriorityQueue<>(Collections.reverseOrder()); 를 사용하는 것만으로 구현 가능하지만 String은 그보다는 좀 더 복잡한 과정을 거쳐야 한다.
import java.util.Collections;
import java.util.PriorityQueue;
public class PQTest {
public static void main(String[] args) {
PriorityQueue<String> priorityQueue = new PriorityQueue<>();
priorityQueue.add("naver");
priorityQueue.add("hanmir");
priorityQueue.add("empas");
priorityQueue.add("daum");
priorityQueue.add("altavista");
priorityQueue.add("yahoo");
priorityQueue.add("google");
priorityQueue.add("sarc");
PriorityQueue<String> reversedPriorityQueue = new PriorityQueue<String>(priorityQueue.size(), Collections.reverseOrder());
reversedPriorityQueue.addAll(priorityQueue);
while (reversedPriorityQueue.size() > 0) {
String poll = reversedPriorityQueue.poll();
System.out.println(poll);
}
}
}
[결과]
yahoo sarc naver hanmir google empas daum altavista