Package org.eclipse.net4j.util.collection

# Class AbstractIterator<T>

java.lang.Object
org.eclipse.net4j.util.collection.AbstractIterator<T>

All Implemented Interfaces:
  `Iterator<T>`

Direct Known Subclasses:
  `AbstractCloseableIterator`, `AbstractFilteredIterator`, `AbstractListIterator`, `ComposedIterator`

public abstract class AbstractIterator<T> extends Object implements Iterator<T>
An abstract base class for custom iterators that only requires to implement a single `computeNextElement()` method.

Since:
  3.2
Author:
  Eike Stepper

## Field Summary

Fields
Modifier and Type
Field
Description
`protected static final Object`
`END_OF_DATA`
The token to be used in `computeNextElement()` to indicate the end of the iteration.

## Constructor Summary

Constructors
Constructor
Description
`AbstractIterator()`

## Method Summary

Modifier and Type
Method
Description
`protected abstract Object`
`computeNextElement()`
Returns the next iteration element, or `END_OF_DATA` if the end of the iteration has been reached.
`static <T> ListIterator<T>`
`empty()`
`final boolean`
`hasNext()`
`final T`
`next()`
`void`
`remove()`

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

## Field Details

### END_OF_DATA

protected static final Object END_OF_DATA
The token to be used in `computeNextElement()` to indicate the end of the iteration.

## Constructor Details

### AbstractIterator

public AbstractIterator()

## Method Details

### hasNext

public final boolean hasNext()

Specified by:
  `hasNext` in interface `Iterator<T>`

### next

public final T next()

Specified by:
  `next` in interface `Iterator<T>`

### remove

public void remove()

Specified by:
  `remove` in interface `Iterator<T>`

### computeNextElement

protected abstract Object computeNextElement()
Returns the next iteration element, or `END_OF_DATA` if the end of the iteration has been reached.

### empty

public static <T> ListIterator<T> empty()

Since:
  3.4