Class ObjectArrayListIterator<E>

java.lang.Object
org.apache.commons.collections4.iterators.ObjectArrayIterator<E>
org.apache.commons.collections4.iterators.ObjectArrayListIterator<E>
All Implemented Interfaces:
Iterator<E>, ListIterator<E>, OrderedIterator<E>, ResettableIterator<E>, ResettableListIterator<E>

public class ObjectArrayListIterator<E> extends ObjectArrayIterator<E> implements ResettableListIterator<E>
Implements a ListIterator over an array of objects.

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

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

Since:
3.0
See Also:
  • Field Details

    • lastItemIndex

      private 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(E) method.
  • Constructor Details

    • ObjectArrayListIterator

      public ObjectArrayListIterator(E... array)
      Constructs an ObjectArrayListIterator that will iterate over the values in the specified array.
      Parameters:
      array - the array to iterate over
      Throws:
      NullPointerException - if array is null
    • ObjectArrayListIterator

      public ObjectArrayListIterator(E[] 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:
      NullPointerException - if array is null
      IndexOutOfBoundsException - if the start index is out of bounds
    • ObjectArrayListIterator

      public ObjectArrayListIterator(E[] 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:
      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 Details

    • hasPrevious

      public boolean hasPrevious()
      Returns true if there are previous elements to return from the array.
      Specified by:
      hasPrevious in interface ListIterator<E>
      Specified by:
      hasPrevious in interface OrderedIterator<E>
      Returns:
      true if there is a previous element to return
    • previous

      public E previous()
      Gets the previous element from the array.
      Specified by:
      previous in interface ListIterator<E>
      Specified by:
      previous in interface OrderedIterator<E>
      Returns:
      the previous element
      Throws:
      NoSuchElementException - if there is no previous element
    • next

      public E next()
      Gets the next element from the array.
      Specified by:
      next in interface Iterator<E>
      Specified by:
      next in interface ListIterator<E>
      Overrides:
      next in class ObjectArrayIterator<E>
      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 interface ListIterator<E>
      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 ListIterator<E>
      Returns:
      the index of the item to be retrieved next
    • add

      public void add(E 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 ListIterator<E>
      Parameters:
      obj - the object to add
      Throws:
      UnsupportedOperationException - always thrown.
    • set

      public void set(E 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 ListIterator<E>
      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 interface ResettableIterator<E>
      Overrides:
      reset in class ObjectArrayIterator<E>