Class CircularArray<T>

java.lang.Object
org.ddogleg.struct.CircularArray<T>

public class CircularArray<T>
extends Object
A circular queue which can grow as needed.
  • Field Summary

    Fields
    Modifier and Type Field Description
    T[] data  
    int size  
    int start  
  • Constructor Summary

    Constructors
    Constructor Description
    CircularArray​(Class<T> type)  
    CircularArray​(Class<T> type, int maxSize)  
  • Method Summary

    Modifier and Type Method Description
    void add​(T value)
    Adds a new element to the queue.
    void addW​(T value)
    Adds a new element to the queue, but if the queue is full write over the oldest element.
    protected T createInstance()  
    T get​(int index)
    Returns the element in the queue at index.
    T grow()
    Adds a new element to the end of the list and returns it.
    T growW()
    Adds a new element to the end of the list and returns it.
    T head()
    Value of the first element in the queue
    boolean isEmpty()  
    boolean isFull()  
    T popHead()
    Returns and removes the first element from the queue.
    T popTail()
    Returns and removes the last element from the queue.
    void removeHead()
    Removes the first element
    void removeTail()
    Removes the last element
    void reset()  
    int size()  
    T tail()
    Value of the last element in the queue

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Field Details

    • data

      public T[] data
    • start

      public int start
    • size

      public int size
  • Constructor Details

    • CircularArray

      public CircularArray​(Class<T> type)
    • CircularArray

      public CircularArray​(Class<T> type, int maxSize)
  • Method Details

    • reset

      public void reset()
    • popHead

      public T popHead()
      Returns and removes the first element from the queue.
      Returns:
      first element in the queue
    • popTail

      public T popTail()
      Returns and removes the last element from the queue.
      Returns:
      last element in the queue
    • head

      public T head()
      Value of the first element in the queue
    • tail

      public T tail()
      Value of the last element in the queue
    • removeHead

      public void removeHead()
      Removes the first element
    • removeTail

      public void removeTail()
      Removes the last element
    • get

      public T get​(int index)
      Returns the element in the queue at index. No bounds check is performed and a garbage value might be returned.
      Parameters:
      index - Which element in the queue you wish to access
      Returns:
      the element's value
    • grow

      public T grow()
      Adds a new element to the end of the list and returns it. If the inner array isn't large enough then it will grow.
      Returns:
      instance at the tail
    • growW

      public T growW()
      Adds a new element to the end of the list and returns it. If the inner array isn't large enough then the oldest element will be written over.
      Returns:
      instance at the tail
    • add

      public void add​(T value)
      Adds a new element to the queue. If the queue isn't large enough to store this value then its internal data array will grow
      Parameters:
      value - Value which is to be added
    • addW

      public void addW​(T value)
      Adds a new element to the queue, but if the queue is full write over the oldest element.
      Parameters:
      value - Value which is to be added
    • size

      public int size()
    • isEmpty

      public boolean isEmpty()
    • isFull

      public boolean isFull()
    • createInstance

      protected T createInstance()