Class AbstractSparseArray.Crawler

java.lang.Object
com.tangosol.util.AbstractSparseArray.Crawler
All Implemented Interfaces:
LongArray.Iterator<V>, Cloneable, Iterator<V>
Direct Known Subclasses:
PrimitiveSparseArray.Iterator
Enclosing class:
AbstractSparseArray<V>

protected class AbstractSparseArray.Crawler extends Object implements LongArray.Iterator<V>, Cloneable
A tree node iterator. The methods of this local class are not synchronized; the enclosing class is responsible for synchronization.
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    protected static final int
     
     
    protected final boolean
     
    protected int
     
    protected static final int
     
    protected static final int
     
    protected static final int
     
  • Constructor Summary

    Constructors
    Modifier
    Constructor
    Description
    protected
    Crawler(AbstractSparseArray.Node<V> head, int fromdir, boolean fForward)
    Crawler constructor.
  • Method Summary

    Modifier and Type
    Method
    Description
    Make a shallow copy of the node crawler.
    Returns the current Node in the iteration.
    long
    Returns the index of the current value, which is the value returned by the most recent call to the next method.
    Returns the current value, which is the same value returned by the most recent call to the next method, or the most recent value passed to setValue if setValue were called after the next method.
    boolean
    Returns true if the iteration has more elements.
    Returns the next element in the iteration.
    Returns the next Node in the iteration.
    void
    Removes from the underlying collection the last element returned by the iterator (optional operation).
    setValue(V oValue)
    Stores a new value at the current value index, returning the value that was replaced.
    Provide a string representation of this node's value.

    Methods inherited from class java.lang.Object

    equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait

    Methods inherited from interface java.util.Iterator

    forEachRemaining
  • Field Details

  • Constructor Details

    • Crawler

      protected Crawler(AbstractSparseArray.Node<V> head, int fromdir, boolean fForward)
      Crawler constructor.
      Parameters:
      head - the node at which to start crawling
      fromdir - the direction in which to start crawling
      fForward - true iff crawler should advance forward towards the next element
  • Method Details

    • hasNext

      public boolean hasNext()
      Returns true if the iteration has more elements. (In other words, returns true if next would return an element rather than throwing an exception.)
      Specified by:
      hasNext in interface Iterator<V>
      Specified by:
      hasNext in interface LongArray.Iterator<V>
      Returns:
      true if the iterator has more elements
    • next

      public V next()
      Returns the next element in the iteration.
      Specified by:
      next in interface Iterator<V>
      Specified by:
      next in interface LongArray.Iterator<V>
      Returns:
      the next element in the iteration
      Throws:
      NoSuchElementException - iteration has no more elements
    • getIndex

      public long getIndex()
      Returns the index of the current value, which is the value returned by the most recent call to the next method.
      Specified by:
      getIndex in interface LongArray.Iterator<V>
      Returns:
      the index of the current value
      Throws:
      IllegalStateException - if the next method has not yet been called, or the remove method has already been called after the last call to the next method.
    • getValue

      public V getValue()
      Returns the current value, which is the same value returned by the most recent call to the next method, or the most recent value passed to setValue if setValue were called after the next method.
      Specified by:
      getValue in interface LongArray.Iterator<V>
      Returns:
      the current value
      Throws:
      IllegalStateException - if the next method has not yet been called, or the remove method has already been called after the last call to the next method.
    • setValue

      public V setValue(V oValue)
      Stores a new value at the current value index, returning the value that was replaced. The index of the current value is obtainable by calling the getIndex method.
      Specified by:
      setValue in interface LongArray.Iterator<V>
      Parameters:
      oValue - the new value to store
      Returns:
      the replaced value
      Throws:
      IllegalStateException - if the next method has not yet been called, or the remove method has already been called after the last call to the next method.
    • remove

      public void remove()
      Removes from the underlying collection the last element returned by the iterator (optional operation). This method can be called only once per call to next. The behavior of an iterator is unspecified if the underlying collection is modified while the iteration is in progress in any way other than by calling this method.
      Specified by:
      remove in interface Iterator<V>
      Specified by:
      remove in interface LongArray.Iterator<V>
      Throws:
      UnsupportedOperationException - if the remove operation is not supported by this Iterator
      IllegalStateException - if the next method has not yet been called, or the remove method has already been called after the last call to the next method.
    • toString

      public String toString()
      Provide a string representation of this node's value.
      Overrides:
      toString in class Object
    • clone

      public Object clone()
      Make a shallow copy of the node crawler.
      Overrides:
      clone in class Object
    • nextNode

      protected AbstractSparseArray.Node<V> nextNode()
      Returns the next Node in the iteration.
      Returns:
      the next Node in the iteration
      Throws:
      NoSuchElementException - iteration has no more elements
    • currentNode

      protected AbstractSparseArray.Node<V> currentNode()
      Returns the current Node in the iteration.
      Returns:
      the current Node in the iteration
      Throws:
      IllegalStateException - if the next method has not yet been called, or the remove method has already been called after the last call to the next method.