public interface PriorityQueue<E>
extends java.util.Set<E>
add(), changePriority(),
removeFirst(), and getFirst() method calls.
There are several important differences between this interface and
the JDK PriorityQueue:
double values
as priorities for queue elements, while
java.util.PriorityQueue uses either the elements'
natural order (see Comparable) or a Comparator.doubles represent higher
priorities; in java.util.PriorityQueue, lesser
elements (with respect to the specified ordering) have higher
priorities.java.util.PriorityQueue, that's not possible.BinaryHeapPriorityQueue, is roughly 2x slower
than java.util.PriorityQueue in informal benchmark
testing.BinaryHeapPriorityQueue and nearly as
fast as PriorityQueue, it does not support removing or
changing the priority of an element.
On the other hand, this interface and PriorityQueue
also have some characteristics in common:
| Modifier and Type | Method and Description |
|---|---|
boolean |
add(E key,
double priority)
Convenience method for if you want to pretend relaxPriority doesn't exist,
or if you really want add's return conditions.
|
boolean |
changePriority(E key,
double priority)
Changes a priority, either up or down, adding the key it if it wasn't there already.
|
E |
getFirst()
Finds the object with the highest priority and returns it, without
modifying the queue.
|
double |
getPriority()
Gets the priority of the highest-priority element of the queue
(without modifying the queue).
|
double |
getPriority(E key)
Get the priority of a key.
|
boolean |
relaxPriority(E key,
double priority)
Increases the priority of the E key to the new priority if the old priority
was lower than the new priority.
|
E |
removeFirst()
Finds the object with the highest priority, removes it,
and returns it.
|
java.util.List<E> |
toSortedList() |
java.lang.String |
toString(int maxKeysToPrint)
Returns a representation of the queue in decreasing priority order,
displaying at most maxKeysToPrint elements.
|
E removeFirst()
E getFirst()
double getPriority()
double getPriority(E key)
key - The object to assessboolean add(E key, double priority)
boolean changePriority(E key, double priority)
key - an E valueboolean relaxPriority(E key, double priority)
java.util.List<E> toSortedList()
java.lang.String toString(int maxKeysToPrint)
maxKeysToPrint - The maximum number of keys to print. Less are
printed if there are less than this number of items in the
PriorityQueue. If this number is non-positive, then all elements in
the PriorityQueue are printed.