Java Priority Queue — Free Java Tutorial
Learn Java Priority Queue in Java with a free, beginner-friendly tutorial, examples and practice for Indian students on Syllab.in.
TL;DR: Learn Java Priority Queue in Java with a free, beginner-friendly tutorial, examples and practice for Indian students on Syllab.in.
Written & reviewed by the Syllab.in Academic Team (CBSE/NCERT subject experts) · Updated
Java Priority Queue in Java
PriorityQueue is a min-heap by default — poll() always returns the smallest element. Use Collections.reverseOrder() or a custom Comparator for a max-heap.
Operations: offer(e) (insert), poll() (remove smallest), peek() (view smallest without removing). All are O(log n) except peek which is O(1).
PriorityQueue does not maintain sorted order for iteration — only the head element (accessible via peek/poll) is guaranteed to be the minimum.
Common uses: Dijkstra's shortest path, A* search, task scheduling by priority, merging sorted lists, finding top-K elements.
Java Priority Queue — Syntax
// Min-heap (default)
PriorityQueue<Integer> minHeap = new PriorityQueue<>();
minHeap.offer(5); minHeap.offer(1); minHeap.offer(3);
minHeap.poll(); // 1 (smallest)
// Max-heap
PriorityQueue<Integer> maxHeap = new PriorityQueue<>(Collections.reverseOrder());
// Custom priority
PriorityQueue<Task> tasks = new PriorityQueue<>(
Comparator.comparingInt(t -> t.priority));
Learn Java Priority Queue step by step with Syllab's free interactive Java tutorial — runnable code examples, practice exercises and instant AI feedback, all free with no signup. Explore the full Java course →