org.apache.commons.collections.iterators

## Class ObjectArrayIterator

- java.lang.Object
- - org.apache.commons.collections.iterators.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 Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `protected Object[]` | `array` The array
    `protected int` | `endIndex` The end index to loop to
    `protected int` | `index` The current iterator index
    `protected int` | `startIndex` The start index to loop from

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `ObjectArrayIterator()` Constructor for use with `setArray`.
    `ObjectArrayIterator(Object[] array)` Constructs an ObjectArrayIterator that will iterate over the values in the specified array.
    `ObjectArrayIterator(Object[] array, int start)` Constructs an ObjectArrayIterator that will iterate over the values in the specified array from a specific start index.
    `ObjectArrayIterator(Object[] array, int start, int end)` Construct an ObjectArrayIterator that will iterate over a range of values in the specified array.

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `Object[]` | `getArray()` Gets the array that this iterator is iterating over.
    `int` | `getEndIndex()` Gets the end index to loop to.
    `int` | `getStartIndex()` Gets the start index to loop from.
    `boolean` | `hasNext()` Returns true if there are more elements to return from the array.
    `Object` | `next()` Returns the next element in the array.
    `void` | `remove()` Throws `UnsupportedOperationException`.
    `void` | `reset()` Resets the iterator back to the start index.
    `void` | `setArray(Object[] array)` Sets the array that the ArrayIterator should iterate over.

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

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

    - #### remove

          public void remove()

      Throws `UnsupportedOperationException`.
      Specified by:
        `remove` in interface `Iterator`
      Throws:
        `UnsupportedOperationException` - always

    - #### 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`

Copyright © 2001–2015 The Apache Software Foundation. All rights reserved.