Class ObjectArrayListIterator
- All Implemented Interfaces:
Iterator
,ListIterator
,ResettableIterator
,ResettableListIterator
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 13:23:08 +0200 (Fri, 11 Apr 2008) $
- Author:
- Neil O'Toole, Stephen Colebourne, Phil Steitz
- See Also:
-
Field Summary
FieldsModifier and TypeFieldDescriptionprotected int
Holds the index of the last item returned by a call tonext()
orprevious()
.Fields inherited from class org.apache.commons.collections.iterators.ObjectArrayIterator
array, endIndex, index, startIndex
-
Constructor Summary
ConstructorsConstructorDescriptionConstructor for use withsetArray
.ObjectArrayListIterator
(Object[] array) Constructs an ObjectArrayListIterator that will iterate over the values in the specified array.ObjectArrayListIterator
(Object[] array, int start) Constructs an ObjectArrayListIterator that will iterate over the values in the specified array from a specific start index.ObjectArrayListIterator
(Object[] array, int start, int end) Construct an ObjectArrayListIterator that will iterate over a range of values in the specified array. -
Method Summary
Modifier and TypeMethodDescriptionvoid
This iterator does not support modification of its backing array's size, and so will always throw anUnsupportedOperationException
when this method is invoked.boolean
Returns true if there are previous elements to return from the array.next()
Gets the next element from the array.int
Gets the next index to be retrieved.previous()
Gets the previous element from the array.int
Gets the index of the item to be retrieved ifprevious()
is called.void
reset()
Resets the iterator back to the start index.void
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
Methods inherited from interface java.util.Iterator
forEachRemaining
Methods inherited from interface java.util.ListIterator
hasNext, remove
-
Field Details
-
lastItemIndex
protected int lastItemIndexHolds the index of the last item returned by a call tonext()
orprevious()
. This is set to-1
if neither method has yet been invoked.lastItemIndex
is used to to implement theset(java.lang.Object)
method.
-
-
Constructor Details
-
ObjectArrayListIterator
public ObjectArrayListIterator()Constructor for use withsetArray
.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
Constructs an ObjectArrayListIterator that will iterate over the values in the specified array.- Parameters:
array
- the array to iterate over- Throws:
NullPointerException
- ifarray
isnull
-
ObjectArrayListIterator
Constructs an ObjectArrayListIterator that will iterate over the values in the specified array from a specific start index.- Parameters:
array
- the array to iterate overstart
- the index to start iterating at- Throws:
NullPointerException
- ifarray
isnull
IndexOutOfBoundsException
- if the start index is out of bounds
-
ObjectArrayListIterator
Construct an ObjectArrayListIterator that will iterate over a range of values in the specified array.- Parameters:
array
- the array to iterate overstart
- the index to start iterating atend
- the index (exclusive) to finish iterating at- Throws:
IndexOutOfBoundsException
- if the start or end index is out of boundsIllegalArgumentException
- if end index is before the startNullPointerException
- ifarray
isnull
-
-
Method Details
-
hasPrevious
public boolean hasPrevious()Returns true if there are previous elements to return from the array.- Specified by:
hasPrevious
in interfaceListIterator
- Returns:
- true if there is a previous element to return
-
previous
Gets the previous element from the array.- Specified by:
previous
in interfaceListIterator
- Returns:
- the previous element
- Throws:
NoSuchElementException
- if there is no previous element
-
next
Gets the next element from the array.- Specified by:
next
in interfaceIterator
- Specified by:
next
in interfaceListIterator
- Overrides:
next
in classObjectArrayIterator
- Returns:
- the next element
- Throws:
NoSuchElementException
- if there is no next element
-
nextIndex
public int nextIndex()Gets the next index to be retrieved.- Specified by:
nextIndex
in interfaceListIterator
- Returns:
- the index of the item to be retrieved next
-
previousIndex
public int previousIndex()Gets the index of the item to be retrieved ifprevious()
is called.- Specified by:
previousIndex
in interfaceListIterator
- Returns:
- the index of the item to be retrieved next
-
add
This iterator does not support modification of its backing array's size, and so will always throw anUnsupportedOperationException
when this method is invoked.- Specified by:
add
in interfaceListIterator
- Parameters:
obj
- the object to add- Throws:
UnsupportedOperationException
- always thrown.
-
set
Sets the element under the cursor.This method sets the element that was returned by the last call to
next()
ofprevious()
. Note:ListIterator
implementations that supportadd()
andremove()
only allowset()
to be called once per call tonext()
orprevious
(see theListIterator
javadoc for more details). Since this implementation does not supportadd()
orremove()
,set()
may be called as often as desired.- Specified by:
set
in interfaceListIterator
- Parameters:
obj
- the object to set into the array- Throws:
IllegalStateException
- if next() has not yet been called.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 interfaceResettableIterator
- Specified by:
reset
in interfaceResettableListIterator
- Overrides:
reset
in classObjectArrayIterator
-