# Class SingletonIterator<E>

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

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

All Implemented Interfaces:
  `Iterator<E>`, `ResettableIterator<E>`

public class SingletonIterator<E> extends Object implements ResettableIterator<E>
`SingletonIterator` is an `Iterator` over a single object instance.

Since:
  2.0

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `SingletonIterator(E object)`
  Constructs a new `SingletonIterator` where `remove` is a permitted operation.
  `SingletonIterator(E object, boolean removeAllowed)`
  Constructs a new `SingletonIterator` optionally choosing if `remove` is a permitted operation.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `boolean`
  `hasNext()`
  Is another object available from the iterator?
  `E`
  `next()`
  Gets the next object from the iterator.
  `void`
  `remove()`
  Remove the object from this iterator.
  `void`
  `reset()`
  Reset the iterator to the start.

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

- ## Constructor Details

  - ### SingletonIterator

    public SingletonIterator(E object)
    Constructs a new `SingletonIterator` where `remove` is a permitted operation.
    Parameters:
      `object` - the single object to return from the iterator

  - ### SingletonIterator

    public SingletonIterator(E object, boolean removeAllowed)
    Constructs a new `SingletonIterator` optionally choosing if `remove` is a permitted operation.
    Parameters:
      `object` - the single object to return from the iterator
      `removeAllowed` - true if remove is allowed
    Since:
      3.1

- ## Method Details

  - ### hasNext

    public boolean hasNext()
    Is another object available from the iterator?

    This returns true if the single object hasn't been returned yet.

    Specified by:
      `hasNext` in interface `Iterator<E>`
    Returns:
      true if the single object hasn't been returned yet

  - ### next

    public E next()
    Gets the next object from the iterator.

    This returns the single object if it hasn't been returned yet.

    Specified by:
      `next` in interface `Iterator<E>`
    Returns:
      the single object
    Throws:
      `NoSuchElementException` - if the single object has already been returned

  - ### remove

    public void remove()
    Remove the object from this iterator.
    Specified by:
      `remove` in interface `Iterator<E>`
    Throws:
      `IllegalStateException` - if the `next` method has not yet been called, or the `remove` method has already been called after the last call to the `next` method.
      `UnsupportedOperationException` - if remove is not supported

  - ### reset

    public void reset()
    Reset the iterator to the start.
    Specified by:
      `reset` in interface `ResettableIterator<E>`