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