it.unimi.dsi.fastutil
Interface IndirectDoublePriorityQueue<K>

All Superinterfaces:
IndirectPriorityQueue<K>
All Known Subinterfaces:
ByteIndirectDoublePriorityQueue, CharIndirectDoublePriorityQueue, DoubleIndirectDoublePriorityQueue, FloatIndirectDoublePriorityQueue, IntIndirectDoublePriorityQueue, LongIndirectDoublePriorityQueue, ShortIndirectDoublePriorityQueue
All Known Implementing Classes:
AbstractIndirectDoublePriorityQueue, ByteArrayIndirectDoublePriorityQueue, ByteHeapIndirectDoublePriorityQueue, ByteHeapSesquiIndirectDoublePriorityQueue, CharArrayIndirectDoublePriorityQueue, CharHeapIndirectDoublePriorityQueue, CharHeapSesquiIndirectDoublePriorityQueue, DoubleArrayIndirectDoublePriorityQueue, DoubleHeapIndirectDoublePriorityQueue, DoubleHeapSesquiIndirectDoublePriorityQueue, FloatArrayIndirectDoublePriorityQueue, FloatHeapIndirectDoublePriorityQueue, FloatHeapSesquiIndirectDoublePriorityQueue, IndirectDoublePriorityQueues.SynchronizedIndirectDoublePriorityQueue, IntArrayIndirectDoublePriorityQueue, IntHeapIndirectDoublePriorityQueue, IntHeapSesquiIndirectDoublePriorityQueue, LongArrayIndirectDoublePriorityQueue, LongHeapIndirectDoublePriorityQueue, LongHeapSesquiIndirectDoublePriorityQueue, ObjectArrayIndirectDoublePriorityQueue, ObjectHeapIndirectDoublePriorityQueue, ObjectHeapSesquiIndirectDoublePriorityQueue, ShortArrayIndirectDoublePriorityQueue, ShortHeapIndirectDoublePriorityQueue, ShortHeapSesquiIndirectDoublePriorityQueue

public interface IndirectDoublePriorityQueue<K>
extends IndirectPriorityQueue<K>

An indirect double priority queue.

An indirect double priority queue uses two distinct comparators (called primary and secondary) to keep its elements ordered. It makes it possible to access the first element w.r.t. the secondary comparatory using secondaryFirst() (and, optionally, the last element using secondaryLast()). The remaining methods work like those of an indirect priority queue based on the primary comparator.


Method Summary
 Comparator<? super K> secondaryComparator()
          Returns the secondary comparator of this queue.
 int secondaryFirst()
          Returns the first element of this queue with respect to the secondary comparator.
 int secondaryFront(int[] a)
          Retrieves the secondary front of the queue in a given array (optional operation).
 int secondaryLast()
          Returns the last element of this queue with respect to the secondary comparator (optional operation).
 
Methods inherited from interface it.unimi.dsi.fastutil.IndirectPriorityQueue
allChanged, changed, changed, clear, comparator, dequeue, enqueue, first, front, isEmpty, last, remove, size
 

Method Detail

secondaryComparator

Comparator<? super K> secondaryComparator()
Returns the secondary comparator of this queue.

Returns:
the secondary comparator of this queue.
See Also:
secondaryFirst()

secondaryFirst

int secondaryFirst()
Returns the first element of this queue with respect to the secondary comparator.

Returns:
the first element of this queue w.r.t. the secondary comparator.

secondaryLast

int secondaryLast()
Returns the last element of this queue with respect to the secondary comparator (optional operation).

Returns:
the last element of this queue w.r.t. the secondary comparator.

secondaryFront

int secondaryFront(int[] a)
Retrieves the secondary front of the queue in a given array (optional operation).

Parameters:
a - an array large enough to hold the secondary front (e.g., at least long as the reference array).
Returns:
the number of elements actually written (starting from the first position of a).
See Also:
IndirectPriorityQueue.front(int[])