public class PriorityQueue<E>

  1. Object
  2. AbstractCollection<E>
  3. AbstractQueue<E>
  4. PriorityQueue

ImplementsCollection<E>, Iterable<E>, Queue<E>

A PriorityQueue holds elements on a priority heap, which orders the elements according to their natural order or according to the comparator specified at construction time. If the queue uses natural ordering, only elements that are comparable are permitted to be inserted into the queue.

The least element of the specified ordering is stored at the head of the queue and the greatest element is stored at the tail of the queue.

A PriorityQueue is not synchronized. If multiple threads will have to access it concurrently, use the java.util.concurrent.PriorityBlockingQueue.

Constructors

public PriorityQueue()Constructs a priority queue with an initial capacity of 11 and natural ordering.
public PriorityQueue(int initialCapacity)Constructs a priority queue with the specified capacity and natural ordering.
public PriorityQueue(int initialCapacity, Comparator<? super E> comparator)Constructs a priority queue with the specified capacity and comparator.
public PriorityQueue(Collection<? extends E> c)Constructs a priority queue that contains the elements of a collection.
public PriorityQueue(PriorityQueue<? extends E> c)Constructs a priority queue that contains the elements of another priority queue.
public PriorityQueue(SortedSet<? extends E> c)Constructs a priority queue that contains the elements of a sorted set.

Methods

public Iterator<E> iterator()Gets the iterator of the priority queue, which will not return elements in any specified ordering.
public int size()Gets the size of the priority queue.
public void clear()Removes all the elements of the priority queue.
public boolean offer(E o)Inserts the element to the priority queue.
public E poll()Gets and removes the head of the queue.
public E peek()Gets but does not remove the head of the queue.
public Comparator<? super E> comparator()Gets the comparator of the priority queue.
public boolean remove(Object o)Removes the specified object from the priority queue.
public boolean add(E o)Adds the specified object to the priority queue.
public boolean contains(Object object)Answers if there is an element in this queue equals to the object.
public Object[] toArray()Returns all the elements in an array.
public <T> T[] toArray(T[] array)Returns all the elements in an array, and the type of the result array is the type of the argument array.

Inherited methods

Constructor details

PriorityQueue

public PriorityQueue()
Constructs a priority queue with an initial capacity of 11 and natural ordering.

PriorityQueue

public PriorityQueue(int initialCapacity)
Constructs a priority queue with the specified capacity and natural ordering.

Parameters

initialCapacity int
the specified capacity.

Throws

IllegalArgumentException
if the initialCapacity is less than 1.

PriorityQueue

public PriorityQueue(int initialCapacity, Comparator<? super E> comparator)
Constructs a priority queue with the specified capacity and comparator.

Parameters

initialCapacity int
the specified capacity.
comparator Comparator<? super E>
the specified comparator. If it is null, the natural ordering will be used.

Throws

IllegalArgumentException
if the initialCapacity is less than 1.

PriorityQueue

public PriorityQueue(Collection<? extends E> c)
Constructs a priority queue that contains the elements of a collection. The constructed priority queue has the initial capacity of 110% of the size of the collection. The queue uses natural ordering to order its elements.

Parameters

c Collection<? extends E>
the collection whose elements will be added to the priority queue to be constructed.

Throws

ClassCastException
if any of the elements in the collection are not comparable.
NullPointerException
if any of the elements in the collection are null.

PriorityQueue

public PriorityQueue(PriorityQueue<? extends E> c)
Constructs a priority queue that contains the elements of another priority queue. The constructed priority queue has the initial capacity of 110% of the specified one. Both priority queues have the same comparator.

Parameters

c PriorityQueue<? extends E>
the priority queue whose elements will be added to the priority queue to be constructed.

PriorityQueue

public PriorityQueue(SortedSet<? extends E> c)
Constructs a priority queue that contains the elements of a sorted set. The constructed priority queue has the initial capacity of 110% of the size of the sorted set. The priority queue will have the same comparator as the sorted set.

Parameters

c SortedSet<? extends E>
the sorted set whose elements will be added to the priority queue to be constructed.

Method details

iterator

public Iterator<E> iterator()
Gets the iterator of the priority queue, which will not return elements in any specified ordering.

Returns

the iterator of the priority queue.

size

public int size()
Gets the size of the priority queue. If the size of the queue is greater than the Integer.MAX, then it returns Integer.MAX.

Returns

the size of the priority queue.

clear

public void clear()
Removes all the elements of the priority queue.

Throws

UnsupportedOperationException
it the iterator does not support removing elements from this Collection

offer

public boolean offer(E o)
Inserts the element to the priority queue.

Parameters

o E
the element to add to the priority queue.

Returns

always true

Throws

ClassCastException
if the element cannot be compared with the elements in the priority queue using the ordering of the priority queue.
NullPointerException
if o is null.

poll

public E poll()
Gets and removes the head of the queue.

Returns

the head of the queue or null if the queue is empty.

peek

public E peek()
Gets but does not remove the head of the queue.

Returns

the head of the queue or null if the queue is empty.

comparator

public Comparator<? super E> comparator()
Gets the comparator of the priority queue.

Returns

the comparator of the priority queue or null if the natural ordering is used.

remove

public boolean remove(Object o)
Removes the specified object from the priority queue.

Parameters

o Object
the object to be removed.

Returns

true if the object was in the priority queue, false if the object was not in the priority queue.

add

public boolean add(E o)
Adds the specified object to the priority queue.

Parameters

o E
the object to be added.

Returns

always true.

Throws

ClassCastException
if the element cannot be compared with the elements in the priority queue using the ordering of the priority queue.
NullPointerException
if o is null.

contains

public boolean contains(Object object)
Answers if there is an element in this queue equals to the object.

Parameters

object Object
the object to search for.

Returns

true if object is an element of this Collection, false otherwise.

Throws

ClassCastException
if the object to look for isn’t of the correct type.
NullPointerException
if the object to look for is null and this Collection doesn’t support null elements.

toArray

public Object[] toArray()
Returns all the elements in an array. The result is a copy of all the elements.

Returns

the Array of all the elements

toArray

public <T> T[] toArray(T[] array)

Returns all the elements in an array, and the type of the result array is the type of the argument array. If the argument array is big enough, the elements from the queue will be stored in it(element immediately following the end of the queue is set to null, if any); otherwise, it will return a new array with the size of the argument array and size of the queue.

Type parameter T: the type of elements in the array

Parameters

array T[]
the array stores all the elements from the queue, if it has enough space; otherwise, a new array of the same type and the size of the queue will be used

Returns

the Array of all the elements

Throws

ArrayStoreException
if the type of the argument array is not compatible with every element in the queue
NullPointerException
if the argument array is null