## 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: 1.12 $ $Date: 2004/02/18 00:59:50 $
Author:
  James Strachan, Mauricio S. Moura, Michael A. Smith, Neil O'Toole, Stephen Colebourne, Phil Steitz

Field Summary
`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
`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
`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-2005 Apache Software Foundation. All Rights Reserved.