# Class EmptyListIterator<E>

java.lang.Object
org.apache.commons.collections4.iterators.EmptyListIterator<E>

Type Parameters:
  `E` - the type of elements returned by this iterator.

All Implemented Interfaces:
  `Iterator<E>`, `ListIterator<E>`, `OrderedIterator<E>`, `ResettableIterator<E>`, `ResettableListIterator<E>`

public class EmptyListIterator<E> extends Object implements ResettableListIterator<E>
Provides an implementation of an empty list iterator.

This class provides an implementation of an empty list iterator. This class provides for binary compatibility between Commons Collections 2.1.1 and 3.1 due to issues with `IteratorUtils`.

Since:
  2.1.1 and 3.1

- ## Field Summary

  Fields
  Modifier and Type
  Field
  Description
  `static final ListIterator`
  `INSTANCE`
  Singleton instance of the iterator.
  `static final ResettableListIterator`
  `RESETTABLE_INSTANCE`
  Singleton instance of the iterator.

- ## Constructor Summary

  Constructors
  Modifier
  Constructor
  Description
  `protected`
  `EmptyListIterator()`
  Constructs a new instance.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `void`
  `add(E ignored)`
  Deprecated.
  Will be removed in 5.0 without replacement.
  `static <E> ListIterator<E>`
  `emptyListIterator()`
  Gets a typed instance of the iterator.
  `boolean`
  `hasNext()`
  Always returns false, this iterator contains no elements.
  `boolean`
  `hasPrevious()`
  Always returns false, this iterator contains no elements.
  `E`
  `next()`
  Always throws IllegalStateException, this iterator contains no elements.
  `int`
  `nextIndex()`
  Always returns 0, this iterator contains no elements.
  `E`
  `previous()`
  Always throws IllegalStateException, this iterator contains no elements.
  `int`
  `previousIndex()`
  Always returns -1, this iterator contains no elements.
  `void`
  `remove()`
  Always throws IllegalStateException, this iterator contains no elements.
  `void`
  `reset()`
  Resets the iterator back to the position at which the iterator was created.
  `static <E> ResettableListIterator<E>`
  `resettableEmptyListIterator()`
  Gets a typed instance of the iterator.
  `void`
  `set(E ignored)`
  Always throws IllegalStateException, this iterator contains no elements.

  ### 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

  `add, hasNext, hasPrevious, next, nextIndex, previous, previousIndex, remove, set`

  ### Methods inherited from interface org.apache.commons.collections4.OrderedIterator

  `hasPrevious, previous`

  ### Methods inherited from interface org.apache.commons.collections4.ResettableIterator

  `reset`

- ## Field Details

  - ### RESETTABLE_INSTANCE

    public static final ResettableListIterator RESETTABLE_INSTANCE
    Singleton instance of the iterator.
    Since:
      3.1

  - ### INSTANCE

    public static final ListIterator INSTANCE
    Singleton instance of the iterator.
    Since:
      2.1.1 and 3.1

- ## Constructor Details

  - ### EmptyListIterator

    protected EmptyListIterator()
    Constructs a new instance.

- ## Method Details

  - ### emptyListIterator

    public static <E> ListIterator<E> emptyListIterator()
    Gets a typed instance of the iterator.
    Type Parameters:
      `E` - the element type
    Returns:
      `ListIterator`<E>

  - ### resettableEmptyListIterator

    public static <E> ResettableListIterator<E> resettableEmptyListIterator()
    Gets a typed instance of the iterator.
    Type Parameters:
      `E` - the element type
    Returns:
      `ResettableListIterator`<E>

  - ### add

    @Deprecated public void add(E ignored)
    Deprecated.
    Will be removed in 5.0 without replacement.
    Always throws UnsupportedOperationException.
    Parameters:
      `ignored` - ignore.
    Throws:
      `UnsupportedOperationException` - Always thrown.

  - ### hasNext

    public boolean hasNext()
    Always returns false, this iterator contains no elements.
    Specified by:
      `hasNext` in interface `Iterator<E>`
    Returns:
      Always false.

  - ### hasPrevious

    public boolean hasPrevious()
    Always returns false, this iterator contains no elements.
    Returns:
      Always false.

  - ### next

    public E next()
    Always throws IllegalStateException, this iterator contains no elements.
    Specified by:
      `next` in interface `Iterator<E>`
    Returns:
      Always throws IllegalStateException.
    Throws:
      `IllegalStateException` - Always thrown.

  - ### nextIndex

    public int nextIndex()
    Always returns 0, this iterator contains no elements.
    Returns:
      Always returns 0.

  - ### previous

    public E previous()
    Always throws IllegalStateException, this iterator contains no elements.
    Returns:
      Always throws IllegalStateException.
    Throws:
      `IllegalStateException` - Always thrown.

  - ### previousIndex

    public int previousIndex()
    Always returns -1, this iterator contains no elements.
    Returns:
      Always returns -1.

  - ### remove

    public void remove()
    Always throws IllegalStateException, this iterator contains no elements.
    Specified by:
      `remove` in interface `Iterator<E>`
    Throws:
      `IllegalStateException` - Always thrown.

  - ### reset

    public void reset()
    Description copied from interface: `ResettableIterator`
    Resets the iterator back to the position at which the iterator was created.
    Specified by:
      `reset` in interface `ResettableIterator<E>`

  - ### set

    public void set(E ignored)
    Always throws IllegalStateException, this iterator contains no elements.
    Parameters:
      `ignored` - ignored.
    Throws:
      `IllegalStateException` - Always thrown.