• Java Data Structures Tutorial

Java Data Structures - Priority Queue class



Queue is an abstract data structure, somewhat similar to Stacks. Unlike stacks, a queue is open at both its ends. One end is always used to insert data (en-queue) and the other is used to remove data (de-queue). Queue follows First-In-First-Out methodology, i.e., the data item stored first will be accessed first.

Queue Representation

As we now understand that in queue, we access both ends for different reasons. The following diagram given below tries to explain queue representation as data structure −

Queue Representation

As in stacks, a queue can also be implemented using Arrays, Linked-lists, Pointers and Structures. For the sake of simplicity, we shall implement queues using one-dimensional array.

The Priority Queue class

The java.util.PriorityQueue class is an unbounded priority queue based on a priority heap. Following are the important points about PriorityQueue −

  • The elements of the priority queue are ordered according to their natural ordering, or by a Comparator provided at queue construction time, depending on which constructor is used.

  • A priority queue does not permit null elements.

  • A priority queue relying on natural ordering also does not permit insertion of non-comparable objects.

Class declaration

Following is the declaration for java.util.PriorityQueue class −

public class PriorityQueue<E>
   extends AbstractQueue<E>
   implements Serializable

Parameters

Following is the parameter for java.util.PriorityQueue class −

E − This is the type of elements held in this collection.

Class constructors

Sr.No. Constructor and Description
1

PriorityQueue()

This creates a PriorityQueue with the default initial capacity (11) that orders its elements according to their natural ordering.

2

PriorityQueue(Collection<? extends E> c)

This creates a PriorityQueue containing the elements in the specified collection.

3

PriorityQueue(int initialCapacity)

This creates a PriorityQueue with the specified initial capacity that orders its elements according to their natural ordering.

4

PriorityQueue(int initialCapacity, Comparator<? super E> comparator)

This creates a PriorityQueue with the specified initial capacity that orders its elements according to the specified comparator.

5

PriorityQueue(PriorityQueue<? extends E> c)

This creates a PriorityQueue containing the elements in the specified priority queue.

6

PriorityQueue(SortedSet<? extends E> c)

This creates a PriorityQueue containing the elements in the specified sorted set.

Class methods

Sr.No. Method and Description
1

boolean add(E e)

This method inserts the specified element into this priority queue.

2

void clear()

This method removes all of the elements from this priority queue.

3

Comparator<? super E> comparator()

This method returns the comparator used to order the elements in this queue, or null if this queue is sorted according to the natural ordering of its elements.

4

boolean contains(Object o)

This method returns true if this queue contains the specified element.

5

Iterator<E> iterator()

This method returns an iterator over the elements in this queue.

6

boolean offer(E e)

This method inserts the specified element into this priority queue.

7

E peek()

This method retrieves, but does not remove, the head of this queue, or returns null if this queue is empty.

8

E poll()

This method retrieves and removes the head of this queue, or returns null if this queue is empty.

9

boolean remove(Object o)

This method removes a single instance of the specified element from this queue, if it is present.

10

int size()

This method returns the number of elements in this collection.

11

Object[] toArray()

This method returns an array containing all of the elements in this queue.

12

<T> T[] toArray(T[] a)

This method returns an array containing all of the elements in this queue; the runtime type of the returned array is that of the specified array.

Advertisements