PriorityQueue for Ordered Processing
Use PriorityQueue with natural ordering and custom comparators for task scheduling scenarios.
What is a PriorityQueue?
A PriorityQueue is a min-heap by default: the element with the lowest natural ordering is always at the head. Elements are not sorted internally — only the minimum is guaranteed at the front.
import java.util.PriorityQueue;
PriorityQueue<Integer> pq = new PriorityQueue<>();
pq.offer(30);
pq.offer(10);
pq.offer(20);
System.out.println(pq.poll()); // 10 (min)
System.out.println(pq.poll()); // 20
System.out.println(pq.poll()); // 30Internal Heap Structure
PriorityQueue uses a binary min-heap stored in an array. The parent at index i is always ≤ its children at 2i+1 and 2i+2. This guarantees O(log n) offer/poll and O(1) peek.
All lessons in this course
- LinkedList Internals
- Deque Operations: Stack and Queue
- LinkedList vs ArrayList Trade-offs
- PriorityQueue for Ordered Processing