Package org.jibx.util

Class SparseArrayIterator

java.lang.Object
org.jibx.util.SparseArrayIterator
All Implemented Interfaces:
Iterator

public class SparseArrayIterator extends Object implements Iterator
Iterator class for sparse values in an array. This type of iterator can be used for an object array which has references interspersed with nulls.
Author:
Dennis M. Sosnoski
  • Field Details

    • EMPTY_ITERATOR

      public static final SparseArrayIterator EMPTY_ITERATOR
      Empty iterator.
    • m_array

      private Object[] m_array
      Array supplying values for iteration.
    • m_offset

      private int m_offset
      Offset of next iteration value.
  • Constructor Details

    • SparseArrayIterator

      private SparseArrayIterator(Object[] array)
      Internal constructor.
      Parameters:
      array - array containing values to be iterated
  • Method Details

    • advance

      protected boolean advance()
      Advance to next iteration value. This advances the current position in the array to the next non-null value.
      Returns:
      true if element available, false if not
    • hasNext

      public boolean hasNext()
      Check for iteration element available.
      Specified by:
      hasNext in interface Iterator
      Returns:
      true if element available, false if not
    • next

      public Object next()
      Get next iteration element.
      Specified by:
      next in interface Iterator
      Returns:
      next iteration element
      Throws:
      NoSuchElementException - if past end of iteration
    • remove

      public void remove()
      Remove element from iteration. This optional operation is not supported and always throws an exception.
      Specified by:
      remove in interface Iterator
      Throws:
      UnsupportedOperationException - for unsupported operation
    • buildIterator

      public static Iterator buildIterator(Object[] array)
      Build iterator.
      Parameters:
      array - array containing values to be iterated (may be null)
      Returns:
      constructed iterator