org.apache.commons.collections.iterators

Class ArrayIterator

public class ArrayIterator extends Object implements ResettableIterator

Implements an java.util.Iterator Iterator over any array.

The array can be either an array of object or of primitives. If you know that you have an object array, the ObjectArrayIterator class is a better choice, as it will perform better.

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

Since: Commons Collections 1.0

Version: $Revision: 155406 $ $Date: 2005-02-26 12:55:26 +0000 (Sat, 26 Feb 2005) $

Author: James Strachan Mauricio S. Moura Michael A. Smith Neil O'Toole Stephen Colebourne

Field Summary
protected Objectarray
The array to iterate over
protected intendIndex
The end index to loop to
protected intindex
The current iterator index
protected intstartIndex
The start index to loop from
Constructor Summary
ArrayIterator()
Constructor for use with setArray.
ArrayIterator(Object array)
Constructs an ArrayIterator that will iterate over the values in the specified array.
ArrayIterator(Object array, int startIndex)
Constructs an ArrayIterator that will iterate over the values in the specified array from a specific start index.
ArrayIterator(Object array, int startIndex, int endIndex)
Construct an ArrayIterator that will iterate over a range of values in the specified array.
Method Summary
protected voidcheckBound(int bound, String type)
Checks whether the index is valid or not.
ObjectgetArray()
Gets the array that this iterator is iterating over.
booleanhasNext()
Returns true if there are more elements to return from the array.
Objectnext()
Returns the next element in the array.
voidremove()
Throws UnsupportedOperationException.
voidreset()
Resets the iterator back to the start index.
voidsetArray(Object array)
Sets the array that the ArrayIterator should iterate over.

Field Detail

array

protected Object array
The array to iterate over

endIndex

protected int endIndex
The end index to loop to

index

protected int index
The current iterator index

startIndex

protected int startIndex
The start index to loop from

Constructor Detail

ArrayIterator

public ArrayIterator()
Constructor for use with setArray.

Using this constructor, the iterator is equivalent to an empty iterator until setArray is called to establish the array to iterate over.

ArrayIterator

public ArrayIterator(Object array)
Constructs an ArrayIterator that will iterate over the values in the specified array.

Parameters: array the array to iterate over.

Throws: IllegalArgumentException if array is not an array. NullPointerException if array is null

ArrayIterator

public ArrayIterator(Object array, int startIndex)
Constructs an ArrayIterator that will iterate over the values in the specified array from a specific start index.

Parameters: array the array to iterate over. startIndex the index to start iterating at.

Throws: IllegalArgumentException if array is not an array. NullPointerException if array is null IndexOutOfBoundsException if the index is invalid

ArrayIterator

public ArrayIterator(Object array, int startIndex, int endIndex)
Construct an ArrayIterator that will iterate over a range of values in the specified array.

Parameters: array the array to iterate over. startIndex the index to start iterating at. endIndex the index to finish iterating at.

Throws: IllegalArgumentException if array is not an array. NullPointerException if array is null IndexOutOfBoundsException if either index is invalid

Method Detail

checkBound

protected void checkBound(int bound, String type)
Checks whether the index is valid or not.

Parameters: bound the index to check type the index type (for error messages)

Throws: IndexOutOfBoundsException if the index is invalid

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 has never been called with a valid array.

hasNext

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

Returns: true if there is a next element to return

next

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

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.

Throws: UnsupportedOperationException always

reset

public void reset()
Resets the iterator back to the start index.

setArray

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

If an array has previously been set (using the single-arg constructor or this method) then that array is discarded in favour of this one. Iteration is restarted at the start of the new array. Although this can be used to reset iteration, the reset method is a more effective choice.

Parameters: array the array that the iterator should iterate over.

Throws: IllegalArgumentException if array is not an array. NullPointerException if array is null

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