PriorityQueue
를 사용하기 위해선 우선순위를 정해줘야하는데, 그것을 Comparable
인터페이스로 구현해줄 수 있다.PriorityQueue
는 자료구조 Heap
을 이용하여 구현된다. 힙 참고자료 import java.util.PriorityQueue
로 해당 패키지를 불러와야한다.
PriorityQueue<Integer> priorityQueue = new PriorityQueue<>();
PriorityQueue<>
클래스를 불러와 생성하면, 올림차순으로 생성된다.PriorityQueue<Integer> priorityQueue = new PriorityQueue<>(Collection<E> c);
ArrayList<Integer> arrayList = new ArrayList<>();
arrayList.add(5);
arrayList.add(4);
arrayList.add(3);
arrayList.add(2);
arrayList.add(1); // arrayList = [5,4,3,2,1]
PriorityQueue<Integer> priorityQueue = new PriorityQueue<Integer>(arrayList);
arrayList.set(4,2); // arrayList = [5,4,3,2,2]
System.out.println(priorityQueue.peek()); // 1
System.out.println(priorityQueue); // priorityQueue = [1,2,3,5,4]
PriorityQueue<Integer> priorityQueue = new PriorityQueue(int initialCapacity);
PriorityQueue(int initialCapacity, Comparator<E> comparator);
PriorityQueue(PriorityQueue<E> c)
PriorityQueue<Integer> priorityQueue = new PriorityQueue<>(SortedSet<E> c)
SortedSet<E>
형식에 맞춰 priorityQueue가 정렬된다.new PriorityQueue<>(Collections.reverseOrder());
Collections.reverseOrder()
의 메소드를 도움받아 내림차순으로 생성된다.내부적으로란 Heap이고, 자료구조형태는 Queue라서 그런지, Queue와 참조메소드는 동일하다.