org.apache.commons.collections.iterators
Class ObjectArrayIterator

java.lang.Object
  extended by org.apache.commons.collections.iterators.ObjectArrayIterator
All Implemented Interfaces:
java.util.Iterator, ResettableIterator
Direct Known Subclasses:
ObjectArrayListIterator

public class ObjectArrayIterator
extends java.lang.Object
implements java.util.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 13:33:15 +0100 (Thu, 10 Apr 2008) $
Author:
James Strachan, Mauricio S. Moura, Michael A. Smith, Neil O'Toole, Stephen Colebourne, Phil Steitz

Field Summary
protected  java.lang.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(java.lang.Object[] array)
          Constructs an ObjectArrayIterator that will iterate over the values in the specified array.
ObjectArrayIterator(java.lang.Object[] array, int start)
          Constructs an ObjectArrayIterator that will iterate over the values in the specified array from a specific start index.
ObjectArrayIterator(java.lang.Object[] array, int start, int end)
          Construct an ObjectArrayIterator that will iterate over a range of values in the specified array.
 
Method Summary
 java.lang.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.
 java.lang.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(java.lang.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 java.lang.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(java.lang.Object[] array)
Constructs an ObjectArrayIterator 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

ObjectArrayIterator

public ObjectArrayIterator(java.lang.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:
java.lang.NullPointerException - if array is null
java.lang.IndexOutOfBoundsException - if the start index is out of bounds

ObjectArrayIterator

public ObjectArrayIterator(java.lang.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:
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

hasNext

public boolean hasNext()
Returns true if there are more elements to return from the array.

Specified by:
hasNext in interface java.util.Iterator
Returns:
true if there is a next element to return

next

public java.lang.Object next()
Returns the next element in the array.

Specified by:
next in interface java.util.Iterator
Returns:
the next element in the array
Throws:
java.util.NoSuchElementException - if all the elements in the array have already been returned

remove

public void remove()
Throws UnsupportedOperationException.

Specified by:
remove in interface java.util.Iterator
Throws:
java.lang.UnsupportedOperationException - always

getArray

public java.lang.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(java.lang.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:
java.lang.IllegalStateException - if the array was set in the constructor
java.lang.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-2008 The Apache Software Foundation. All Rights Reserved.