×

PriorityQueue in Java

PriorityQueue in Java

A PriorityQueue is a member of the Java Collection Framework and is used when the values are needed to be processed based on priority.

Priority Queue in Java

Priority queue operates similar to a standard queue except that each element has a specific priority associated with it.

Priority queue

Priority of the elements in the PriorityQueue determines the order in which elements are removed from the PriorityQueue.

It is an Abstract DataType (ADT) and unbounded, but it has an internal capacity that governs the capacity of an array used to store the elements on the queue.

Priority queues support comparable data, i.e. the data inserted inside the queue must be able to order in some way, either from “least to greatest” or “greatest to least”, It is so that we can assign relative priorities to each element.

Priority Queue was first introduced with the JDK 1.5.

Constructors of Priority Queue

Constructors Description
PriorityQueue() It initializes a ProirityQueue with the initial default capacity of 11, and the order of the elements are according to their default ordering.
PriorityQueue(Collection c) It initializes a PriorityQueue containing the elements of the collection specified in the parameter.
PriorityQueue(int initialCapacity) It initializes a PriorityQueue with the initial capacity specified in the argument, and the order of the elements are according to its default ordering.
PriorityQueue(int initialCapacity, Comparator comparator) It creates a PriorityQueue with the initial capacity specified in the argument, and the order of the element is according to the specified comparator.
PriorityQueue(PriorityQueue<E> c) It creates a PriorityQueue containing the elements that are contained by the specified priority queue. The order of the initialized priority queue is according to the same ordering as the given priority queue.
PriorityQueue(SortedSet<E> c) It initializes the PriorityQueue containing the elements of the specified Sorted set.

Methods of Priority Queue

Modifiers/Data Type Methods Description
boolean add(E e) It adds the specified element to the priority queue.
  contains(Object o) If the queue contains the specified element in the argument, then it will return true.
  remove(Object o) First occurrence of the argumented element from the queue will be removed by this method.
  offer(E e) It inserts the element specified in the parameter into the queue.
void clear() It clears all the elements from the queue.
int size() It returns the number of entries available in the queue.
Comparator<E> comparator() It returns the comparator that orders the element in the queue or returns null if the queue is sorted according to the default ordering of its elements.
Iterator<E> Iterator() It returns an iterator for the elements in the queue.
E peek() It retrieves the top element of the queue or returns null if the list is empty.
E poll() It retrieves as well as remove the head of the queue, or returns null if the queue is empty.
Object[] toArray() It returns an array that contains all the elements in the queue.
T[] toArray(T[] a) It returns an array that contains all the elements of the queue, and the return type of the array returned is that of the specified array.

Example to add elements in the Priority Queue using add(E e) method.

import Java.util.*;
class AddDemo {
public static void main(String[] args) {
//Creating priority queue of default size
PriorityQueue pq= new PriorityQueue<String>();
//Adding elements to the queue
pq.add("Java");
pq.add("Pyhton");
pq.add("DBMS");
pq.add("MongoDB");
//printing the elements in the priority queue
System.out.print("Elements in the Queue are:\n");
for(String val : pq)
{
System.out.println(val);
}
}
} 

Output:

Elements in the Queue are:
DBMS
MongoDB
Pyhton
Java 

Example to illustrate contains(Object o) method.

import Java.util.*;
class ContainsDemo {
public static void main(String[] args)
{
//initializing queue
Queue q = new PriorityQueue();
//adding element
q.add("Java");
q.add("C#");
q.add("Python");
q.add("CCNA");
for (String val : q){
System.out.println(val);
}
/*using contains() method to check whether the specified element
is present in the queue or not*/
System.out.println("Does the Queue contains 'Java'? " +q.contains("Java"));
System.out.println("Does the Queue contains 'SQL'? " +q.contains("SQL"));
}
} 

Output:

C#
CCNA
Python
Java
Does the Queue contains 'Java'? true
Does the Queue contains 'SQL'? false 

Example to remove the element from the queue using remove(Object o) method.

import Java.util.*;
class RemoveDemo {
public static void main(String args[])
{
// Creating an empty PriorityQueue
PriorityQueue q = new PriorityQueue();
//adding elements into the Queue
q.add("Java");
q.add("C++");
q.add("Python");
q.add("SQL");
q.add("Selenium");
// Displaying the PriorityQueue
System.out.println("Elements in the Queue: " + q);
// Removing elements using remove() method
q.remove("Selenium");
q.remove("Python");
// Displaying the PriorityQueue after removing the elements
System.out.println("Elements in the queue after removing elements: " + q);
}
} 

Output:

Elements in the Queue: [C++, Java, Python, SQL, Selenium]
Elements in the queue after removing elements: [C++, Java, SQL] 

Example to illustrate the offer(E e) method.

import Java.util.*;
public class OfferDemo {
public static void main(String args[])
{
//initializing an empty PriorityQueue
PriorityQueue q =new PriorityQueue();
//Adding elements to the queue using add() method
q.add("Java");
q.add("Python");
q.add("SQL");
q.add("MongoDB");
q.add("C#");
//now printing the elements in the queue
System.out.println("Elements int the Queue"+ q);
//Inserting new elements using offer() method
q.offer("Tutorial");
q.offer("Example");
//Printing the final queue
System.out.println("Priority Queue after Offer method::" +q);
}
} 

Output:

Elements int the Queue[C#, Java, SQL, Python, MongoDB]
Priority Queue after Offer method::[C#, Java, Example, Python, MongoDB, Tutorial, SQL] 

Example to delete all the elements from the PriorityQueue using the clear() method.

import Java.util.*;
public class ClearDemo {
public static void main(String[] args)
{
//Initializing an empty PriorityQueue
PriorityQueue q= new PriorityQueue();
//Adding elements to the queue
q.add("Java");
q.add("C++");
q.add("Python");
q.add("SQL");
q.add("Selenium");
//Printing the Queue
System.out.println("Element in the queue are::"+q);
//deleting all the elements in the queue
q.clear();
//printing the queue
System.out.println("Queue is empty::"+q);
}
} 

Output:

Element in the queue are::[C++, Java, Python, SQL, Selenium]
Queue is empty::[] 

Example to get the size of the PriorityQueue using size() method.

import Java.util.*;
public class SizeDemo {
public static void main(String[] args) {
//Initializing an empty PriorityQueue
PriorityQueue q= new PriorityQueue();
//Adding elements to the queue
q.add("Java");
q.add("C++");
q.add("Python");
q.add("SQL");
q.add("Selenium");
//Printing the Queue
System.out.println("Element in the queue are:"+q);
//Printing the size of the PriorityQueue
System.out.println("The size of the given queue is::"+q.size());
}
} 

Output:

Element in the queue are:[C++, Java, Python, SQL, Selenium]
The size of the given queue is::5 

Example to illustrate the comparator() method.

import Java.util.Comparator;
import Java.util.PriorityQueue;
class Student {
public String name;
public int marks;
Student(String name,int marks){
this.name=name;
this.marks=marks;
}
public String toString(){
return this.name+" got "+ this.marks+" marks.";
}
}
class sort implements Comparator{
@Override
//using compare() method to compare on the basis of marks of students
public int compare(Student a, Student b) {
if(a.marksb.marks) {
return 1;
}else{
return 0;
}
}
}
public class ComparatorDemo {
public static void main(String[] args) {
//creating objects to store the values
Student student1 = new Student("Ankit", 98);
Student student2 = new Student("Anubhav", 19);
Student student3 = new Student("Aakash", 78);
Student student4 = new Student("Sumit", 18);
//Initializing priority queue
PriorityQueuePqueue = new PriorityQueue(5,new sort());
//adding elements to the queue from the object student
Pqueue.add(student1);
Pqueue.add(student2);
Pqueue.add(student3);
Pqueue.add(student4);
//using the comparator method to sort the queue, if it is not in its natural ordering
Pqueue.comparator();
//printing the sorted elements in the queue
for(Student xyz:Pqueue){
System.out.println(xyz);
}
}
} 

Output:

Sumit got 18 marks.
Anubhav got 19 marks.
Aakash got 78 marks.
Ankit got 98 marks. 

Example to illustrate iterator() method.

import Java.util.Iterator;
import Java.util.PriorityQueue;
public class IteratorDemo {
public static void main(String[] args) {
// initializing an empty PriorityQueue
PriorityQueue q = new PriorityQueue();
//adding elements into the Queue
q.add("xamarin");
q.add("Python");
q.add("SQL");
q.add("Selenium");
// printing the PriorityQueue
System.out.println("Elements in the Queue: " + q);
// Initializing an iterator
Iterator val = q.iterator();
// printing the values after iterating through the queue
System.out.println("Elements after iteration: ");
while (val.hasNext()) {
System.out.println(val.next());
}
}
} 

Output:

Elements in the Queue: [Python, Selenium, SQL, xamarin]
Elements after iteration:
Python
Selenium
SQL
xamarin 

Example to illustrate the peek() method.

import Java.util.*;
public class PeekDemo {
public static void main(String[] args) {
//Initializing an empty PriorityQueue
PriorityQueue q= new PriorityQueue();
//adding elements using add() method
q.add("Java");
q.add("Python");
q.add("SQL");
q.add("MogoDB");
//printing the queue
System.out.println("Elements in the Queue are :"+q);
//fetching element using peek() method
System.out.println("The head element in the queue is:" +q.peek());
//printing the queue after the peek()
System.out.println("Elements in the queue after peek() :"+q);
}
} 

Output:

Elements in the Queue are :[Java, MogoDB, SQL, Python]
The head element in the queue is:Java
Elements in the queue after peek() :[Java, MogoDB, SQL, Python] 

Example to illustrate poll() method.

import Java.util.PriorityQueue;
public class PollDemo {
public static void main(String[] args) {
//Initializing an empty PriorityQueue
PriorityQueue q= new PriorityQueue();
//adding elements using add() method
q.add("Java");
q.add("Python");
q.add("SQL");
q.add("MogoDB");
//printing the queue
System.out.println("Elements in the Queue are :"+q);
//fetching element using poll() method
System.out.println("The element at the top is:" +q.poll());
//printing the queue after the poll() method
System.out.println("Elements in the queue after poll() :"+q);
}
} 

Output:

Elements in the Queue are :[Java, MogoDB, SQL, Python]
The element at the top is:Java
Elements in the queue after poll() :[MogoDB, Python, SQL] 

Example to illustrate toArray() method:

import Java.util.PriorityQueue;
public class ToArrayDemo {
public static void main(String[] args) {
//initializing an empty PriorityQueue
PriorityQueue q = new PriorityQueue();
//adding elements into the Queue
q.add("Xamarin");
q.add("Android");
q.add("Java");
q.add("Ruby");
q.add("MongoDB");
// Printing the PriorityQueue
System.out.println("The PriorityQueue is: " + q);
// defining the array and using toArray()
Object[] ar = q.toArray();
System.out.println("The array is:");
for (int k = 0; k < ar.length; k++)
System.out.println(ar[k]);
}
} 

Output:

The PriorityQueue is: [Android, MongoDB, Java, Xamarin, Ruby]
The array is:
Android
MongoDB
Java
Xamarin
Ruby 


Related Topics

Types of Events in Java

One of Java's key ideas is the principle of an event. Events in Java are activities that result in a change in the state or behavior of an object. The...

4 minutes read.

Synchronized Keyword in Java

Synchronization is the process of limiting access to a shared resource or data to a single thread at a given moment in time. This aids in shielding the data from...

6 minutes read.

Sort Dates in Java

The Collection class's sort() method, which is a component of the Comparator mechanism, arranges the data in decreasing order. The Comparator interface can be used to accomplish the goal while...

4 minutes read.

How to Convert String to float in Java

How to Convert String to Float in java It is used if you want to perform mathematical operations on the string that contains float number. You can convert String to float...

3 minutes read.

PriorityBlockingQueue Class in Java

What is the Queue? An abstract data structure like Stacks is a queue. A queue is open on both ends. Data is always pushed to one end, called enqueue, and removed...

4 minutes read.

How to Calculate Time Difference Between Two Dates in Java?

Date is being used extensively in Java to calculate date differences. While constructing an application, the date of joining an organisation, admission date, appointment date, and others might be included....

4 minutes read.

Java finally

Java finally: There are some statements in a program whose execution is extremely important. For example, closing of a database connection. Statements that do the closing of the database connection...

5 minutes read.

Class definition in Java

The class definition in Java Java is an object-oriented programming language. We essentially know that programming languages based on object-oriented paradigms have classes and objects in their concepts as main, which...

6 minutes read.

Java Boyer Moore

A string searching or matching technique called the Boyer-Moore algorithm was created in 1977 by Robert S. Boyer and J. Strother Moore. It is the most popular and effective string-matching...

9 minutes read.

Java time local date

Java: Java is one of the programming language which is object oriented. It consists of many features such as robust, simple, architecture neutral, dynamic, distributed, multi threaded, portable etc. The main feature...

3 minutes read.

Matrix Multiplication in Java

In Java, using the binary operator (*) we can perform matrix multiplication. A Matrix is a group of arrays. In the multiplication of matrices, the elements of each row are...

3 minutes read.

Java Strings

String class is the most used class in Java programming language. The string is the sequence of characters, which is treated as objects in Java. Creating String objects We create String objects...

5 minutes read.

Sort Elements by Frequency in Java

To sort the elements in Java by using frequency, we need an input array. We should create a function that sorts the elements in an array by using their frequencies...

3 minutes read.

URLConnection class in Java

A communication channel between the URL and the program is represented by the Java URLConnection class. It may be utilized to read from and write to the given resource the...

4 minutes read.

Split String into String Array in Java

The String split() technique returns a variety of divided strings after the strategy parts the given String around matches of a given normal articulation containing the delimiters. The ordinary articulation...

4 minutes read.

Java Anon Proxy

The Java Anon Proxy (JAP), also known as JonDonym, is a proxy system designed to enable Web browsing with revocable (the use of or publication under a pseudonym, a false...

4 minutes read.

Java String Interview Questions

Java String Interview Questions String is the most common and important discussed topics in a Java interview. In Java interview interviewer generally asked three to four questions based on String concept....

16 minutes read.

Difference between Aggregation and Composition in Java

What is Aggregation? Before we start discussing Aggregation, we have to know some general information about our classes in java. Generally we have two members in our classes , the first...

8 minutes read.

Convert IP to Binary in Java

Fundamental conversion, such as going from binary to decimal or vice versa, is a crucial activity in computers. Understanding IP addressing and subnetting is crucial for networking. The primary networking...

4 minutes read.

CopyOnWriteArrayList in Java

The CopyOnWriteArrayList is used to implement the List Interface. It is the improved version of ArrayList. The operations like add, remove, set, update etc, these operations are done by creating...

5 minutes read.