Package gnu.trove.list.linked

# Class TLinkedList.IteratorImpl

java.lang.Object
gnu.trove.list.linked.TLinkedList.IteratorImpl

All Implemented Interfaces:
  `Iterator<T>`, `ListIterator<T>`

Enclosing class:
  `TLinkedList<T extends TLinkable<T>>`

protected final class TLinkedList.IteratorImpl extends Object implements ListIterator<T>
A ListIterator that supports additions and deletions.

## Method Summary

Modifier and Type
Method
Description
`final void`
`add(T linkable)`
Insert `linkable` at the current position of the iterator.
`final boolean`
`hasNext()`
True if a call to next() will return an object.
`final boolean`
`hasPrevious()`
True if a call to previous() will return a value.
`final T`
`next()`
Returns the value at the Iterator's index and advances the iterator.
`final int`
`nextIndex()`
returns the index of the next node in the list (the one that would be returned by a call to next()).
`final T`
`previous()`
Returns the value before the Iterator's index and moves the iterator back one index.
`final int`
`previousIndex()`
Returns the previous element's index.
`final void`
`remove()`
Removes the current element in the list and shrinks its size accordingly.
`final void`
`set(T linkable)`
Replaces the current element in the list with `linkable`

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

## Method Details

### add

public final void add(T linkable)
Insert `linkable` at the current position of the iterator. Calling next() after add() will return the added object.

Specified by:
  `add` in interface `ListIterator<T extends TLinkable<T>>`
Parameters:
  `linkable` - an object of type TLinkable

### hasNext

public final boolean hasNext()
True if a call to next() will return an object.

Specified by:
  `hasNext` in interface `Iterator<T extends TLinkable<T>>`
Specified by:
  `hasNext` in interface `ListIterator<T extends TLinkable<T>>`
Returns:
  a `boolean` value

### hasPrevious

public final boolean hasPrevious()
True if a call to previous() will return a value.

Specified by:
  `hasPrevious` in interface `ListIterator<T extends TLinkable<T>>`
Returns:
  a `boolean` value

### next

public final T next()
Returns the value at the Iterator's index and advances the iterator.

Specified by:
  `next` in interface `Iterator<T extends TLinkable<T>>`
Specified by:
  `next` in interface `ListIterator<T extends TLinkable<T>>`
Returns:
  an `Object` value
Throws:
  `NoSuchElementException` - if there is no next element

### nextIndex

public final int nextIndex()
returns the index of the next node in the list (the one that would be returned by a call to next()).

Specified by:
  `nextIndex` in interface `ListIterator<T extends TLinkable<T>>`
Returns:
  an `int` value

### previous

public final T previous()
Returns the value before the Iterator's index and moves the iterator back one index.

Specified by:
  `previous` in interface `ListIterator<T extends TLinkable<T>>`
Returns:
  an `Object` value
Throws:
  `NoSuchElementException` - if there is no previous element.

### previousIndex

public final int previousIndex()
Returns the previous element's index.

Specified by:
  `previousIndex` in interface `ListIterator<T extends TLinkable<T>>`
Returns:
  an `int` value

### remove

public final void remove()
Removes the current element in the list and shrinks its size accordingly.

Specified by:
  `remove` in interface `Iterator<T extends TLinkable<T>>`
Specified by:
  `remove` in interface `ListIterator<T extends TLinkable<T>>`
Throws:
  `IllegalStateException` - neither next nor previous have been invoked, or remove or add have been invoked after the last invocation of next or previous.

### set

public final void set(T linkable)
Replaces the current element in the list with `linkable`

Specified by:
  `set` in interface `ListIterator<T extends TLinkable<T>>`
Parameters:
  `linkable` - an object of type TLinkable