Class ObjectArrayIterator

  • All Implemented Interfaces:
    Iterator, ResettableIterator
    Direct Known Subclasses:
    ObjectArrayListIterator

    public class ObjectArrayIterator
    extends Object
    implements Iterator, ResettableIterator
    An Iterator over an array of objects.

    This iterator does not support remove(), as the object array cannot be structurally modified.

    The iterator implements a reset() method, allowing the reset of the iterator back to the start if required.

    Since:
    Commons Collections 3.0
    Version:
    $Revision: 646777 $ $Date: 2008-04-10 14:33:15 +0200 (Thu, 10 Apr 2008) $
    Author:
    James Strachan, Mauricio S. Moura, Michael A. Smith, Neil O'Toole, Stephen Colebourne, Phil Steitz
    • Field Detail

      • array

        protected Object[] array
        The array
      • startIndex

        protected int startIndex
        The start index to loop from
      • endIndex

        protected int endIndex
        The end index to loop to
      • index

        protected int index
        The current iterator index
    • Constructor Detail

      • ObjectArrayIterator

        public ObjectArrayIterator()
        Constructor for use with setArray.

        Using this constructor, the iterator is equivalent to an empty iterator until setArray(java.lang.Object[]) is called to establish the array to iterate over.

      • ObjectArrayIterator

        public ObjectArrayIterator​(Object[] array)
        Constructs an ObjectArrayIterator that will iterate over the values in the specified array.
        Parameters:
        array - the array to iterate over
        Throws:
        NullPointerException - if array is null
      • ObjectArrayIterator

        public ObjectArrayIterator​(Object[] array,
                                   int start)
        Constructs an ObjectArrayIterator that will iterate over the values in the specified array from a specific start index.
        Parameters:
        array - the array to iterate over
        start - the index to start iterating at
        Throws:
        NullPointerException - if array is null
        IndexOutOfBoundsException - if the start index is out of bounds
      • ObjectArrayIterator

        public ObjectArrayIterator​(Object[] array,
                                   int start,
                                   int end)
        Construct an ObjectArrayIterator that will iterate over a range of values in the specified array.
        Parameters:
        array - the array to iterate over
        start - the index to start iterating at
        end - the index (exclusive) to finish iterating at
        Throws:
        IndexOutOfBoundsException - if the start or end index is out of bounds
        IllegalArgumentException - if end index is before the start
        NullPointerException - if array is null
    • Method Detail

      • hasNext

        public boolean hasNext()
        Returns true if there are more elements to return from the array.
        Specified by:
        hasNext in interface Iterator
        Returns:
        true if there is a next element to return
      • next

        public Object next()
        Returns the next element in the array.
        Specified by:
        next in interface Iterator
        Returns:
        the next element in the array
        Throws:
        NoSuchElementException - if all the elements in the array have already been returned
      • getArray

        public Object[] getArray()
        Gets the array that this iterator is iterating over.
        Returns:
        the array this iterator iterates over, or null if the no-arg constructor was used and setArray(java.lang.Object[]) has never been called with a valid array.
      • setArray

        public void setArray​(Object[] array)
        Sets the array that the ArrayIterator should iterate over.

        This method may only be called once, otherwise an IllegalStateException will occur.

        The reset() method can be used to reset the iterator if required.

        Parameters:
        array - the array that the iterator should iterate over
        Throws:
        IllegalStateException - if the array was set in the constructor
        NullPointerException - if array is null
      • getStartIndex

        public int getStartIndex()
        Gets the start index to loop from.
        Returns:
        the start index
      • getEndIndex

        public int getEndIndex()
        Gets the end index to loop to.
        Returns:
        the end index
      • reset

        public void reset()
        Resets the iterator back to the start index.
        Specified by:
        reset in interface ResettableIterator