
- Java.util - Home
- Java.util - ArrayDeque
- Java.util - ArrayList
- Java.util - Arrays
- Java.util - BitSet
- Java.util - Calendar
- Java.util - Collections
- Java.util - Currency
- Java.util - Date
- Java.util - Dictionary
- Java.util - EnumMap
- Java.util - EnumSet
- Java.util - Formatter
- Java.util - GregorianCalendar
- Java.util - HashMap
- Java.util - HashSet
- Java.util - Hashtable
- Java.util - IdentityHashMap
- Java.util - LinkedHashMap
- Java.util - LinkedHashSet
- Java.util - LinkedList
- Java.util - ListResourceBundle
- Java.util - Locale
- Java.util - Observable
- Java.util - PriorityQueue
- Java.util - Properties
- Java.util - PropertyPermission
- Java.util - PropertyResourceBundle
- Java.util - Random
- Java.util - ResourceBundle
- Java.util - ResourceBundle.Control
- Java.util - Scanner
- Java.util - ServiceLoader
- Java.util - SimpleTimeZone
- Java.util - Stack
- Java.util - StringTokenizer
- Java.util - Timer
- Java.util - TimerTask
- Java.util - TimeZone
- Java.util - TreeMap
- Java.util - TreeSet
- Java.util - UUID
- Java.util - Vector
- Java.util - WeakHashMap
- Java.util - Interfaces
- Java.util - Exceptions
- Java.util - Enumerations
- Java.util Useful Resources
- Java.util - Useful Resources
- Java.util - Discussion
Java PriorityQueue comparator() Method
Description
The Java PriorityQueue comparator() method returns the comparator used to order the elements in this queue.
Declaration
Following is the declaration for java.util.PriorityQueue.comparator() method.
public Comparator<? super E> comparator()
Parameters
NA
Return Value
The method call returns the comparator used to order this queue, or null if this queue is sorted according to the natural ordering of its elements.
Exception
NA
Using a Custom Comparator in PriorityQueue of Ints Example
The following example shows the usage of Java PriorityQueue comparator() method to get a relevant comparator. We're adding couple of Integers to the PriorityQueue object using add() method calls per element and then print each element to show the elements added and the comparator used.
package com.tutorialspoint; import java.util.Comparator; import java.util.PriorityQueue; public class PriorityQueueDemo { public static void main(String[] args) { // create an empty priority queue with an initial capacity PriorityQueue<Integer> queue = new PriorityQueue<>(5, new IntComparator()); // use add() method to add elements in the queue queue.add(20); queue.add(30); queue.add(20); queue.add(30); queue.add(15); queue.add(22); queue.add(11); // let us print all the elements available in queue for (Integer number : queue) { System.out.println("Number = " + number); } System.out.println("Comparator = " + queue.comparator()); } } class IntComparator implements Comparator<Integer>{ @Override public int compare(Integer o1, Integer o2) { return o1 - o2; } }
Output
Let us compile and run the above program, this will produce the following result −
Number = 11 Number = 20 Number = 15 Number = 30 Number = 30 Number = 22 Number = 20 Comparator = com.tutorialspoint.IntComparator@5315b42e
Using a Custom Comparator in PriorityQueue of Strings Example
The following example shows the usage of Java PriorityQueue comparator() method to get a relevant comparator. We're adding couple of Strings to the PriorityQueue object using add() method calls per element and then print each element to show the elements added and the comparator used.
package com.tutorialspoint; import java.util.Comparator; import java.util.PriorityQueue; public class PriorityQueueDemo { public static void main(String[] args) { // create an empty priority queue PriorityQueue<String> queue = new PriorityQueue<>(new StringComparator()); // use add() method to add elements in the queue queue.add("Welcome"); queue.add("To"); queue.add("Tutorialspoint"); System.out.println("PriorityQueue = " + queue); System.out.println("Comparator = " + queue.comparator()); } } class StringComparator implements Comparator<String>{ @Override public int compare(String o1, String o2) { return o1.compareTo(o2); } }
Output
Let us compile and run the above program, this will produce the following result −
PriorityQueue = [To, Welcome, Tutorialspoint] Comparator = com.tutorialspoint.StringComparator@5315b42e
Using a Custom Comparator in PriorityQueue of Objects Example
The following example shows the usage of Java PriorityQueue comparator() method to get a relevant comparator. We're adding couple of Student objects to the PriorityQueue object using add() method calls per element and then print each element to show the elements added and the comparator used.
package com.tutorialspoint; import java.util.Comparator; import java.util.PriorityQueue; public class PriorityQueueDemo { public static void main(String[] args) { // create an empty priority queue PriorityQueue<Student> queue = new PriorityQueue<>(new RollNoComparator()); // use add() method to add elements in the queue queue.add(new Student(1, "Julie")); queue.add(new Student(2, "Robert")); queue.add(new Student(3, "Adam")); System.out.println("PriorityQueue = " + queue); System.out.println("Comparator = " + queue.comparator()); } } class Student { int rollNo; String name; Student(int rollNo, String name){ this.rollNo = rollNo; this.name = name; } @Override public String toString() { return "[ " + this.rollNo + ", " + this.name + " ]"; } @Override public boolean equals(Object obj) { Student s = (Student)obj; return this.rollNo == s.rollNo && this.name.equalsIgnoreCase(s.name); } } class RollNoComparator implements Comparator<Student>{ @Override public int compare(Student o1, Student o2) { return o1.rollNo - o2.rollNo; } }
Output
Let us compile and run the above program, this will produce the following result −
PriorityQueue = [[ 1, Julie ], [ 2, Robert ], [ 3, Adam ]] Comparator = com.tutorialspoint.RollNoComparator@2ef9b8bc