Interface DoubleArray

All Known Implementing Classes:
ResizableDoubleArray

public interface DoubleArray
Provides a standard interface for double arrays. Allows different array implementations to support various storage mechanisms such as automatic expansion, contraction, and array "rolling".
  • Method Summary

    Modifier and Type Method Description
    void addElement​(double value)
    Adds an element to the end of this expandable array
    double addElementRolling​(double value)
    Adds an element to the end of the array and removes the first element in the array.
    void addElements​(double[] values)
    Adds elements to the end of this expandable array
    void clear()
    Clear the double array
    double getElement​(int index)
    Returns the element at the specified index.
    double[] getElements()
    Returns a double[] array containing the elements of this DoubleArray.
    int getNumElements()
    Returns the number of elements currently in the array.
    void setElement​(int index, double value)
    Sets the element at the specified index.
  • Method Details

    • getNumElements

      int getNumElements()
      Returns the number of elements currently in the array. Please note that this may be different from the length of the internal storage array.
      Returns:
      number of elements
    • getElement

      double getElement​(int index)
      Returns the element at the specified index. Note that if an out of bounds index is supplied a ArrayIndexOutOfBoundsException will be thrown.
      Parameters:
      index - index to fetch a value from
      Returns:
      value stored at the specified index
      Throws:
      java.lang.ArrayIndexOutOfBoundsException - if index is less than zero or is greater than getNumElements() - 1.
    • setElement

      void setElement​(int index, double value)
      Sets the element at the specified index. If the specified index is greater than getNumElements() - 1, the numElements property is increased to index +1 and additional storage is allocated (if necessary) for the new element and all (uninitialized) elements between the new element and the previous end of the array).
      Parameters:
      index - index to store a value in
      value - value to store at the specified index
      Throws:
      java.lang.ArrayIndexOutOfBoundsException - if index is less than zero.
    • addElement

      void addElement​(double value)
      Adds an element to the end of this expandable array
      Parameters:
      value - to be added to end of array
    • addElements

      void addElements​(double[] values)
      Adds elements to the end of this expandable array
      Parameters:
      values - to be added to end of array
    • addElementRolling

      double addElementRolling​(double value)

      Adds an element to the end of the array and removes the first element in the array. Returns the discarded first element. The effect is similar to a push operation in a FIFO queue.

      Example: If the array contains the elements 1, 2, 3, 4 (in that order) and addElementRolling(5) is invoked, the result is an array containing the entries 2, 3, 4, 5 and the value returned is 1.

      Parameters:
      value - the value to be added to the array
      Returns:
      the value which has been discarded or "pushed" out of the array by this rolling insert
    • getElements

      double[] getElements()
      Returns a double[] array containing the elements of this DoubleArray. If the underlying implementation is array-based, this method should always return a copy, rather than a reference to the underlying array so that changes made to the returned array have no effect on the DoubleArray.
      Returns:
      all elements added to the array
    • clear

      void clear()
      Clear the double array