Class ObjectHeapPriorityQueue<K>
- java.lang.Object
-
- it.unimi.dsi.fastutil.objects.ObjectHeapPriorityQueue<K>
-
- All Implemented Interfaces:
PriorityQueue<K>,Serializable
public class ObjectHeapPriorityQueue<K> extends Object implements PriorityQueue<K>, Serializable
A type-specific heap-based priority queue.Instances of this class represent a priority queue using a heap. The heap is enlarged as needed, but it is never shrunk. Use the
trim()method to reduce its size, if necessary.- See Also:
- Serialized Form
-
-
Constructor Summary
Constructors Constructor Description ObjectHeapPriorityQueue()Creates a new empty queue using the natural order.ObjectHeapPriorityQueue(int capacity)Creates a new empty queue with a given capacity and using the natural order.ObjectHeapPriorityQueue(int capacity, Comparator<? super K> c)Creates a new empty queue with a given capacity and comparator.ObjectHeapPriorityQueue(Collection<? extends K> collection)Creates a queue using the elements in a collection using the natural order.ObjectHeapPriorityQueue(Collection<? extends K> collection, Comparator<? super K> c)Creates a queue using the elements in a collection using a given comparator.ObjectHeapPriorityQueue(Comparator<? super K> c)Creates a new empty queue with a given comparator.ObjectHeapPriorityQueue(K[] a)Wraps a given array in a queue using the natural order.ObjectHeapPriorityQueue(K[] a, int size)Wraps a given array in a queue using the natural order.ObjectHeapPriorityQueue(K[] a, int size, Comparator<? super K> c)Wraps a given array in a queue using a given comparator.ObjectHeapPriorityQueue(K[] a, Comparator<? super K> c)Wraps a given array in a queue using a given comparator.
-
Method Summary
Modifier and Type Method Description voidchanged()Notifies the queue that the first element has changed (optional operation).voidclear()Removes all elements from this queue.Comparator<? super K>comparator()Returns the comparator associated with this queue, ornullif it uses its elements' natural ordering.Kdequeue()Dequeues the first element from the queue.voidenqueue(K x)Enqueues a new element.Kfirst()Returns the first element of the queue.intsize()Returns the number of elements in this queue.voidtrim()Trims the underlying heap array so that it has exactlysize()elements.-
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface it.unimi.dsi.fastutil.PriorityQueue
isEmpty, last
-
-
-
-
Constructor Detail
-
ObjectHeapPriorityQueue
public ObjectHeapPriorityQueue(int capacity, Comparator<? super K> c)Creates a new empty queue with a given capacity and comparator.- Parameters:
capacity- the initial capacity of this queue.c- the comparator used in this queue, ornullfor the natural order.
-
ObjectHeapPriorityQueue
public ObjectHeapPriorityQueue(int capacity)
Creates a new empty queue with a given capacity and using the natural order.- Parameters:
capacity- the initial capacity of this queue.
-
ObjectHeapPriorityQueue
public ObjectHeapPriorityQueue(Comparator<? super K> c)
Creates a new empty queue with a given comparator.- Parameters:
c- the comparator used in this queue, ornullfor the natural order.
-
ObjectHeapPriorityQueue
public ObjectHeapPriorityQueue()
Creates a new empty queue using the natural order.
-
ObjectHeapPriorityQueue
public ObjectHeapPriorityQueue(K[] a, int size, Comparator<? super K> c)
Wraps a given array in a queue using a given comparator.The queue returned by this method will be backed by the given array. The first
sizeelement of the array will be rearranged so to form a heap (this is more efficient than enqueing the elements ofaone by one).- Parameters:
a- an array.size- the number of elements to be included in the queue.c- the comparator used in this queue, ornullfor the natural order.
-
ObjectHeapPriorityQueue
public ObjectHeapPriorityQueue(K[] a, Comparator<? super K> c)
Wraps a given array in a queue using a given comparator.The queue returned by this method will be backed by the given array. The elements of the array will be rearranged so to form a heap (this is more efficient than enqueing the elements of
aone by one).- Parameters:
a- an array.c- the comparator used in this queue, ornullfor the natural order.
-
ObjectHeapPriorityQueue
public ObjectHeapPriorityQueue(K[] a, int size)
Wraps a given array in a queue using the natural order.The queue returned by this method will be backed by the given array. The first
sizeelement of the array will be rearranged so to form a heap (this is more efficient than enqueing the elements ofaone by one).- Parameters:
a- an array.size- the number of elements to be included in the queue.
-
ObjectHeapPriorityQueue
public ObjectHeapPriorityQueue(K[] a)
Wraps a given array in a queue using the natural order.The queue returned by this method will be backed by the given array. The elements of the array will be rearranged so to form a heap (this is more efficient than enqueing the elements of
aone by one).- Parameters:
a- an array.
-
ObjectHeapPriorityQueue
public ObjectHeapPriorityQueue(Collection<? extends K> collection, Comparator<? super K> c)
Creates a queue using the elements in a collection using a given comparator.This constructor is more efficient than enqueing the elements of
collectionone by one.- Parameters:
collection- a collection; its elements will be used to initialize the queue.c- the comparator used in this queue, ornullfor the natural order.
-
ObjectHeapPriorityQueue
public ObjectHeapPriorityQueue(Collection<? extends K> collection)
Creates a queue using the elements in a collection using the natural order.This constructor is more efficient than enqueing the elements of
collectionone by one.- Parameters:
collection- a collection; its elements will be used to initialize the queue.
-
-
Method Detail
-
enqueue
public void enqueue(K x)
Description copied from interface:PriorityQueueEnqueues a new element.- Specified by:
enqueuein interfacePriorityQueue<K>- Parameters:
x- the element to enqueue.
-
dequeue
public K dequeue()
Description copied from interface:PriorityQueueDequeues the first element from the queue.- Specified by:
dequeuein interfacePriorityQueue<K>- Returns:
- the dequeued element.
-
first
public K first()
Description copied from interface:PriorityQueueReturns the first element of the queue.- Specified by:
firstin interfacePriorityQueue<K>- Returns:
- the first element.
-
changed
public void changed()
Description copied from interface:PriorityQueueNotifies the queue that the first element has changed (optional operation).This default implementation just throws an
UnsupportedOperationException.- Specified by:
changedin interfacePriorityQueue<K>
-
size
public int size()
Description copied from interface:PriorityQueueReturns the number of elements in this queue.- Specified by:
sizein interfacePriorityQueue<K>- Returns:
- the number of elements in this queue.
-
clear
public void clear()
Description copied from interface:PriorityQueueRemoves all elements from this queue.- Specified by:
clearin interfacePriorityQueue<K>
-
trim
public void trim()
Trims the underlying heap array so that it has exactlysize()elements.
-
comparator
public Comparator<? super K> comparator()
Description copied from interface:PriorityQueueReturns the comparator associated with this queue, ornullif it uses its elements' natural ordering.- Specified by:
comparatorin interfacePriorityQueue<K>- Returns:
- the comparator associated with this sorted set, or
nullif it uses its elements' natural ordering.
-
-