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

      All Methods Instance Methods Abstract Methods 
      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 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 Detail

      • 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
      • 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