## org.apache.commons.collections.iterators
Class ObjectArrayListIterator

    java.lang.Object
      org.apache.commons.collections.iterators.ObjectArrayIterator
          org.apache.commons.collections.iterators.ObjectArrayListIterator

All Implemented Interfaces:
  java.util.Iterator, java.util.ListIterator, ResettableIterator, ResettableListIterator

    public class ObjectArrayListIterator

extends ObjectArrayIterator
implements java.util.ListIterator, ResettableListIterator

Implements a `ListIterator` over an array of objects.

This iterator does not support `add(java.lang.Object)` or `ObjectArrayIterator.remove()`, as the object array cannot be structurally modified. The `set(java.lang.Object)` method is supported however.

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: 647116 $ $Date: 2008-04-11 12:23:08 +0100 (Fri, 11 Apr 2008) $
Author:
  Neil O'Toole, Stephen Colebourne, Phil Steitz
See Also:
  `ObjectArrayIterator`, `Iterator`, `ListIterator`

Field Summary
`protected int` `lastItemIndex` Holds the index of the last item returned by a call to `next()` or `previous()`.

Fields inherited from class org.apache.commons.collections.iterators.ObjectArrayIterator
`array, endIndex, index, startIndex`

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

Method Summary
`void` `add(java.lang.Object obj)` This iterator does not support modification of its backing array's size, and so will always throw an `UnsupportedOperationException` when this method is invoked.
`boolean` `hasPrevious()` Returns true if there are previous elements to return from the array.
`java.lang.Object` `next()` Gets the next element from the array.
`int` `nextIndex()` Gets the next index to be retrieved.
`java.lang.Object` `previous()` Gets the previous element from the array.
`int` `previousIndex()` Gets the index of the item to be retrieved if `previous()` is called.
`void` `reset()` Resets the iterator back to the start index.
`void` `set(java.lang.Object obj)` Sets the element under the cursor.

Methods inherited from class org.apache.commons.collections.iterators.ObjectArrayIterator
`getArray, getEndIndex, getStartIndex, hasNext, remove, setArray`

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Field Detail

### lastItemIndex

    protected int lastItemIndex

  Holds the index of the last item returned by a call to `next()` or `previous()`. This is set to `-1` if neither method has yet been invoked. `lastItemIndex` is used to to implement the `set(java.lang.Object)` method.

Constructor Detail

### ObjectArrayListIterator

    public ObjectArrayListIterator()

  Constructor for use with `setArray`.

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

### ObjectArrayListIterator

    public ObjectArrayListIterator(java.lang.Object[] array)

  Constructs an ObjectArrayListIterator that will iterate over the values in the specified array.

  Parameters:
    `array` - the array to iterate over
  Throws:
    `java.lang.NullPointerException` - if `array` is `null`

### ObjectArrayListIterator

    public ObjectArrayListIterator(java.lang.Object[] array,
                                   int start)

  Constructs an ObjectArrayListIterator 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:
    `java.lang.NullPointerException` - if `array` is `null`
    `java.lang.IndexOutOfBoundsException` - if the start index is out of bounds

### ObjectArrayListIterator

    public ObjectArrayListIterator(java.lang.Object[] array,
                                   int start,
                                   int end)

  Construct an ObjectArrayListIterator 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:
    `java.lang.IndexOutOfBoundsException` - if the start or end index is out of bounds
    `java.lang.IllegalArgumentException` - if end index is before the start
    `java.lang.NullPointerException` - if `array` is `null`

Method Detail

### hasPrevious

    public boolean hasPrevious()

  Returns true if there are previous elements to return from the array.

  Specified by:
    `hasPrevious` in interface `java.util.ListIterator`
  Returns:
    true if there is a previous element to return

### previous

    public java.lang.Object previous()

  Gets the previous element from the array.

  Specified by:
    `previous` in interface `java.util.ListIterator`
  Returns:
    the previous element
  Throws:
    `java.util.NoSuchElementException` - if there is no previous element

### next

    public java.lang.Object next()

  Gets the next element from the array.

  Specified by:
    `next` in interface `java.util.Iterator`
  Specified by:
    `next` in interface `java.util.ListIterator`
  Overrides:
    `next` in class `ObjectArrayIterator`
  Returns:
    the next element
  Throws:
    `java.util.NoSuchElementException` - if there is no next element

### nextIndex

    public int nextIndex()

  Gets the next index to be retrieved.

  Specified by:
    `nextIndex` in interface `java.util.ListIterator`
  Returns:
    the index of the item to be retrieved next

### previousIndex

    public int previousIndex()

  Gets the index of the item to be retrieved if `previous()` is called.

  Specified by:
    `previousIndex` in interface `java.util.ListIterator`
  Returns:
    the index of the item to be retrieved next

### add

    public void add(java.lang.Object obj)

  This iterator does not support modification of its backing array's size, and so will always throw an `UnsupportedOperationException` when this method is invoked.

  Specified by:
    `add` in interface `java.util.ListIterator`
  Parameters:
    `obj` - the object to add
  Throws:
    `java.lang.UnsupportedOperationException` - always thrown.

### set

    public void set(java.lang.Object obj)

  Sets the element under the cursor.

  This method sets the element that was returned by the last call to `next()` of `previous()`. Note: `ListIterator` implementations that support `add()` and `remove()` only allow `set()` to be called once per call to `next()` or `previous` (see the `ListIterator` javadoc for more details). Since this implementation does not support `add()` or `remove()`, `set()` may be called as often as desired.

  Specified by:
    `set` in interface `java.util.ListIterator`
  Parameters:
    `obj` - the object to set into the array
  Throws:
    `java.lang.IllegalStateException` - if next() has not yet been called.
    `java.lang.ClassCastException` - if the object type is unsuitable for the array

### reset

    public void reset()

  Resets the iterator back to the start index.

  Specified by:
    `reset` in interface `ResettableIterator`
  Specified by:
    `reset` in interface `ResettableListIterator`
  Overrides:
    `reset` in class `ObjectArrayIterator`

Copyright © 2001-2008 The Apache Software Foundation. All Rights Reserved.