Class PriorityQueue<E>
- Type Parameters:
 E- the type of elements held in this queue
- All Implemented Interfaces:
 Iterable<E>,Collection<E>,Queue<E>
PriorityQueue, but supports PriorityQueue.Access.- 
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic interfaceThis allows us to store the index into the element itself to improve the performance of inserting or removing elements. - 
Field Summary
FieldsModifier and TypeFieldDescriptionprotected PriorityQueue.Access<? super E> The type-specific index accessor used in this queue.protected Comparator<? super E> The type-specific comparator used in this queue.protected E[]The heap array.protected intThe number of elements in this queue. - 
Constructor Summary
ConstructorsConstructorDescriptionPriorityQueue(int priority) PriorityQueue(int capacity, PriorityQueue.Access<? super E> access) PriorityQueue(int capacity, Comparator<? super E> comparator, PriorityQueue.Access<? super E> access) Creates aPriorityQueuewith a given capacity, comparator and index accessor.PriorityQueue(PriorityQueue.Access<? super E> access) PriorityQueue(Comparator<? super E> comparator, PriorityQueue.Access<? super E> access)  - 
Method Summary
Modifier and TypeMethodDescriptionPriorityQueue.Access<? super E> access()booleanInserts the specified element into this priority queue.voidclear()Removes all of the elements from this priority queue.Comparator<? super E> Returns the comparator used to order the elements in this queue, ornullif this queue is sorted according to the natural ordering of its elements.booleanReturnstrueif this queue contains the specified element.elementAt(int i) Gets the ith element in priority queue.voidheap()Makes the current array into a heap.iterator()Returns an iterator over the elements in this queue.booleanInserts the specified element into this priority queue.peek()poll()booleanRemoves a single instance of the specified element from this queue, if it is present.voidremoveAt(int i) Removes the ith element from queue.intsize()voidsort()Sorts the queue into priority order.Object[]toArray()Returns an array containing all of the elements in this queue.<T> T[]toArray(T[] a) Returns an array containing all of the elements in this queue; the runtime type of the returned array is that of the specified array.voidtrim()Trims the underlying heap array so that it has exactlysize()elements.Methods inherited from class java.util.AbstractQueue
addAll, element, removeMethods inherited from class java.util.AbstractCollection
containsAll, isEmpty, removeAll, retainAll, toStringMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitMethods inherited from interface java.util.Collection
containsAll, equals, hashCode, isEmpty, parallelStream, removeAll, removeIf, retainAll, spliterator, stream, toArray 
- 
Field Details
- 
mHeap
The heap array. - 
mSize
protected int mSizeThe number of elements in this queue. - 
mComparator
The type-specific comparator used in this queue. - 
mAccess
The type-specific index accessor used in this queue. 
 - 
 - 
Constructor Details
- 
PriorityQueue
public PriorityQueue() - 
PriorityQueue
public PriorityQueue(int priority)  - 
PriorityQueue
 - 
PriorityQueue
 - 
PriorityQueue
 - 
PriorityQueue
public PriorityQueue(int capacity, Comparator<? super E> comparator, PriorityQueue.Access<? super E> access) Creates aPriorityQueuewith a given capacity, comparator and index accessor.- Parameters:
 capacity- the initial capacity of this queue.comparator- the comparator used in this queue, ornullfor the natural order.access- the index accessor used in this queue, ornull.
 
 - 
 - 
Method Details
- 
add
Inserts the specified element into this priority queue.- Specified by:
 addin interfaceCollection<E>- Specified by:
 addin interfaceQueue<E>- Overrides:
 addin classAbstractQueue<E>- Returns:
 true(as specified byCollection.add(E))- Throws:
 ClassCastException- if the specified element cannot be compared with elements currently in this priority queue according to the priority queue's orderingNullPointerException- if the specified element is null
 - 
offer
Inserts the specified element into this priority queue.- Returns:
 true(as specified byQueue.offer(E))- Throws:
 ClassCastException- if the specified element cannot be compared with elements currently in this priority queue according to the priority queue's orderingNullPointerException- if the specified element is null
 - 
peek
 - 
remove
Removes a single instance of the specified element from this queue, if it is present. More formally, removes an elementesuch thato.equals(e), if this queue contains one or more such elements. Returnstrueif and only if this queue contained the specified element (or equivalently, if this queue changed as a result of the call).- Specified by:
 removein interfaceCollection<E>- Overrides:
 removein classAbstractCollection<E>- Parameters:
 o- element to be removed from this queue, if present- Returns:
 trueif this queue changed as a result of the call
 - 
contains
Returnstrueif this queue contains the specified element. More formally, returnstrueif and only if this queue contains at least one elementesuch thato.equals(e).- Specified by:
 containsin interfaceCollection<E>- Overrides:
 containsin classAbstractCollection<E>- Parameters:
 o- object to be checked for containment in this queue- Returns:
 trueif this queue contains the specified element
 - 
toArray
Returns an array containing all of the elements in this queue. The elements are in no particular order.The returned array will be "safe" in that no references to it are maintained by this queue. (In other words, this method must allocate a new array). The caller is thus free to modify the returned array.
This method acts as bridge between array-based and collection-based APIs.
- Specified by:
 toArrayin interfaceCollection<E>- Overrides:
 toArrayin classAbstractCollection<E>- Returns:
 - an array containing all of the elements in this queue
 
 - 
toArray
public <T> T[] toArray(T[] a) Returns an array containing all of the elements in this queue; the runtime type of the returned array is that of the specified array. The returned array elements are in no particular order. If the queue fits in the specified array, it is returned therein. Otherwise, a new array is allocated with the runtime type of the specified array and the size of this queue.If the queue fits in the specified array with room to spare (i.e., the array has more elements than the queue), the element in the array immediately following the end of the collection is set to
null.Like the
toArray()method, this method acts as bridge between array-based and collection-based APIs. Further, this method allows precise control over the runtime type of the output array, and may, under certain circumstances, be used to save allocation costs.Suppose
xis a queue known to contain only strings. The following code can be used to dump the queue into a newly allocated array ofString:String[] y = x.toArray(new String[0]);Note that
toArray(new Object[0])is identical in function totoArray().- Specified by:
 toArrayin interfaceCollection<E>- Overrides:
 toArrayin classAbstractCollection<E>- Parameters:
 a- the array into which the elements of the queue are to be stored, if it is big enough; otherwise, a new array of the same runtime type is allocated for this purpose.- Returns:
 - an array containing all of the elements in this queue
 - Throws:
 ArrayStoreException- if the runtime type of the specified array is not a supertype of the runtime type of every element in this queueNullPointerException- if the specified array is null
 - 
iterator
Returns an iterator over the elements in this queue. The iterator does not return the elements in any particular order.- Specified by:
 iteratorin interfaceCollection<E>- Specified by:
 iteratorin interfaceIterable<E>- Specified by:
 iteratorin classAbstractCollection<E>- Returns:
 - an iterator over the elements in this queue
 
 - 
size
public int size()- Specified by:
 sizein interfaceCollection<E>- Specified by:
 sizein classAbstractCollection<E>
 - 
clear
public void clear()Removes all of the elements from this priority queue. The queue will be empty after this call returns.- Specified by:
 clearin interfaceCollection<E>- Overrides:
 clearin classAbstractQueue<E>
 - 
poll
 - 
removeAt
public void removeAt(int i) Removes the ith element from queue. - 
elementAt
Gets the ith element in priority queue.elementAt(0)is equivalent topeek(). Otherwise, there is no guarantee about ordering of elements in the queue. - 
sort
public void sort()Sorts the queue into priority order. The queue is only guaranteed to remain in sorted order until any other operation, other thanelementAt(int), is performed. - 
heap
public void heap()Makes the current array into a heap. - 
trim
public void trim()Trims the underlying heap array so that it has exactlysize()elements. - 
comparator
Returns the comparator used to order the elements in this queue, ornullif this queue is sorted according to the natural ordering of its elements.- Returns:
 - the comparator used to order this queue, or
 
nullif this queue is sorted according to the natural ordering of its elements 
 - 
access
 
 -