it.unimi.dsi.fastutil.floats
Class FloatArrayIndirectDoublePriorityQueue

java.lang.Object
  extended by it.unimi.dsi.fastutil.AbstractIndirectPriorityQueue<Float>
      extended by it.unimi.dsi.fastutil.floats.FloatArrayIndirectPriorityQueue
          extended by it.unimi.dsi.fastutil.floats.FloatArrayIndirectDoublePriorityQueue
All Implemented Interfaces:
FloatIndirectDoublePriorityQueue, FloatIndirectPriorityQueue, IndirectDoublePriorityQueue<Float>, IndirectPriorityQueue<Float>

public class FloatArrayIndirectDoublePriorityQueue
extends FloatArrayIndirectPriorityQueue
implements FloatIndirectDoublePriorityQueue

A type-specific array-based indirect double priority queue.

Instances of this class are based on a single array. This implementation is extremely inefficient, but it is difficult to beat when the size of the queue is very small. The array is enlarged as needed, but it is never shrunk. Use the FloatArrayIndirectPriorityQueue.trim() method to reduce its size, if necessary.

Either comparator may be null, indicating that natural comparison should take place. Of course, it makes little sense having them equal.


Constructor Summary
FloatArrayIndirectDoublePriorityQueue(float[] refArray)
          Creates a new empty queue with capacity equal to the length of the reference array and natural order as primary comparator.
FloatArrayIndirectDoublePriorityQueue(float[] refArray, FloatComparator c)
          Creates a new empty queue with capacity equal to the length of the reference array.
FloatArrayIndirectDoublePriorityQueue(float[] refArray, FloatComparator c, FloatComparator d)
          Creates a new empty queue with capacity equal to the length of the reference array.
FloatArrayIndirectDoublePriorityQueue(float[] refArray, int capacity)
          Creates a new empty queue with a given capacity and natural order as primary comparator.
FloatArrayIndirectDoublePriorityQueue(float[] refArray, int[] a)
          Wraps a given array in a queue using the natural order and its opposite.
FloatArrayIndirectDoublePriorityQueue(float[] refArray, int[] a, FloatComparator c)
          Wraps a given array in a queue using a given comparator and its opposite.
FloatArrayIndirectDoublePriorityQueue(float[] refArray, int[] a, FloatComparator c, FloatComparator d)
          Wraps a given array in a queue using the given comparators.
FloatArrayIndirectDoublePriorityQueue(float[] refArray, int[] a, int size)
          Wraps a given array in a queue using the natural order and its opposite.
FloatArrayIndirectDoublePriorityQueue(float[] refArray, int[] a, int size, FloatComparator c)
          Wraps a given array in a queue using a given comparator and its opposite.
FloatArrayIndirectDoublePriorityQueue(float[] refArray, int[] a, int size, FloatComparator c, FloatComparator d)
          Wraps a given array in a queue using the given comparators.
FloatArrayIndirectDoublePriorityQueue(float[] refArray, int capacity, FloatComparator c)
          Creates a new empty queue with a given capacity.
FloatArrayIndirectDoublePriorityQueue(float[] refArray, int capacity, FloatComparator c, FloatComparator d)
          Creates a new empty queue with a given capacity.
 
Method Summary
 void changed(int i)
          Notifies the queue that the specified element has changed (optional operation).
 FloatComparator 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 class it.unimi.dsi.fastutil.floats.FloatArrayIndirectPriorityQueue
allChanged, changed, clear, comparator, dequeue, enqueue, first, front, last, remove, size, toString, trim
 
Methods inherited from class it.unimi.dsi.fastutil.AbstractIndirectPriorityQueue
isEmpty
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface it.unimi.dsi.fastutil.floats.FloatIndirectPriorityQueue
comparator
 
Methods inherited from interface it.unimi.dsi.fastutil.IndirectPriorityQueue
allChanged, changed, clear, dequeue, enqueue, first, front, isEmpty, last, remove, size
 

Constructor Detail

FloatArrayIndirectDoublePriorityQueue

public FloatArrayIndirectDoublePriorityQueue(float[] refArray,
                                             int capacity,
                                             FloatComparator c,
                                             FloatComparator d)
Creates a new empty queue with a given capacity.

Parameters:
refArray - the reference array.
capacity - the initial capacity of this queue.
c - the primary comparator used in this queue, or null for the natural order.
d - the secondary comparator used in this queue, or null for the natural order.

FloatArrayIndirectDoublePriorityQueue

public FloatArrayIndirectDoublePriorityQueue(float[] refArray,
                                             int capacity,
                                             FloatComparator c)
Creates a new empty queue with a given capacity.

This constructor uses as secondary comparator the opposite order of c.

Parameters:
refArray - the reference array.
capacity - the initial capacity of this queue.
c - the primary comparator used in this queue, or null for the natural order.

FloatArrayIndirectDoublePriorityQueue

public FloatArrayIndirectDoublePriorityQueue(float[] refArray,
                                             int capacity)
Creates a new empty queue with a given capacity and natural order as primary comparator.

This constructor uses as secondary comparator the opposite of the natural order.

Parameters:
refArray - the reference array.
capacity - the initial capacity of this queue.

FloatArrayIndirectDoublePriorityQueue

public FloatArrayIndirectDoublePriorityQueue(float[] refArray,
                                             FloatComparator c,
                                             FloatComparator d)
Creates a new empty queue with capacity equal to the length of the reference array.

Parameters:
refArray - the reference array.
c - the primary comparator used in this queue, or null for the natural order.
d - the secondary comparator used in this queue, or null for the natural order.

FloatArrayIndirectDoublePriorityQueue

public FloatArrayIndirectDoublePriorityQueue(float[] refArray,
                                             FloatComparator c)
Creates a new empty queue with capacity equal to the length of the reference array.

This constructor uses as secondary comparator the opposite order of c.

Parameters:
refArray - the reference array.
c - the primary comparator used in this queue, or null for the natural order.

FloatArrayIndirectDoublePriorityQueue

public FloatArrayIndirectDoublePriorityQueue(float[] refArray)
Creates a new empty queue with capacity equal to the length of the reference array and natural order as primary comparator.

This constructor uses as secondary comparator the opposite of the natural order.

Parameters:
refArray - the reference array.

FloatArrayIndirectDoublePriorityQueue

public FloatArrayIndirectDoublePriorityQueue(float[] refArray,
                                             int[] a,
                                             int size,
                                             FloatComparator c,
                                             FloatComparator d)
Wraps a given array in a queue using the given comparators.

The queue returned by this method will be backed by the given array.

Parameters:
refArray - the reference array.
a - an array of indices into refArray.
size - the number of elements to be included in the queue.
c - the primary comparator used in this queue, or null for the natural order.
d - the secondary comparator used in this queue, or null for the natural order.

FloatArrayIndirectDoublePriorityQueue

public FloatArrayIndirectDoublePriorityQueue(float[] refArray,
                                             int[] a,
                                             FloatComparator c,
                                             FloatComparator d)
Wraps a given array in a queue using the given comparators.

The queue returned by this method will be backed by the given array.

Parameters:
refArray - the reference array.
a - an array of indices into refArray.
c - the primary comparator used in this queue, or null for the natural order.
d - the secondary comparator used in this queue, or null for the natural order.

FloatArrayIndirectDoublePriorityQueue

public FloatArrayIndirectDoublePriorityQueue(float[] refArray,
                                             int[] a,
                                             int size,
                                             FloatComparator c)
Wraps a given array in a queue using a given comparator and its opposite.

The queue returned by this method will be backed by the given array.

Parameters:
refArray - the reference array.
a - an array of indices into refArray.
size - the number of elements to be included in the queue.
c - the comparator used in this queue, or null for the natural order.

FloatArrayIndirectDoublePriorityQueue

public FloatArrayIndirectDoublePriorityQueue(float[] refArray,
                                             int[] a,
                                             FloatComparator c)
Wraps a given array in a queue using a given comparator and its opposite.

The queue returned by this method will be backed by the given array.

Parameters:
refArray - the reference array.
a - an array of indices into refArray.
c - the comparator used in this queue, or null for the natural order.

FloatArrayIndirectDoublePriorityQueue

public FloatArrayIndirectDoublePriorityQueue(float[] refArray,
                                             int[] a,
                                             int size)
Wraps a given array in a queue using the natural order and its opposite.

The queue returned by this method will be backed by the given array.

Parameters:
refArray - the reference array.
a - an array of indices into refArray.
size - the number of elements to be included in the queue.

FloatArrayIndirectDoublePriorityQueue

public FloatArrayIndirectDoublePriorityQueue(float[] refArray,
                                             int[] a)
Wraps a given array in a queue using the natural order and its opposite.

The queue returned by this method will be backed by the given array.

Parameters:
refArray - the reference array.
a - an array of indices into refArray.
Method Detail

secondaryFirst

public int secondaryFirst()
Description copied from interface: IndirectDoublePriorityQueue
Returns the first element of this queue with respect to the secondary comparator.

Specified by:
secondaryFirst in interface IndirectDoublePriorityQueue<Float>
Returns:
the first element of this queue w.r.t. the secondary comparator.

secondaryLast

public int secondaryLast()
Description copied from interface: IndirectDoublePriorityQueue
Returns the last element of this queue with respect to the secondary comparator (optional operation).

Specified by:
secondaryLast in interface IndirectDoublePriorityQueue<Float>
Returns:
the last element of this queue w.r.t. the secondary comparator.

secondaryFront

public int secondaryFront(int[] a)
Description copied from interface: IndirectDoublePriorityQueue
Retrieves the secondary front of the queue in a given array (optional operation).

Specified by:
secondaryFront in interface IndirectDoublePriorityQueue<Float>
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[])

changed

public void changed(int i)
Description copied from class: FloatArrayIndirectPriorityQueue
Notifies the queue that the specified element has changed (optional operation).

Note that the specified element must belong to the queue.

Note that for efficiency reasons this method will not throw an exception when index is not in the queue.

Specified by:
changed in interface IndirectPriorityQueue<Float>
Overrides:
changed in class FloatArrayIndirectPriorityQueue
Parameters:
i - the element that has changed.

secondaryComparator

public FloatComparator secondaryComparator()
Returns the secondary comparator of this queue.

Specified by:
secondaryComparator in interface FloatIndirectDoublePriorityQueue
Specified by:
secondaryComparator in interface IndirectDoublePriorityQueue<Float>
Returns:
the secondary comparator of this queue.
See Also:
secondaryFirst()