APIdia Launch Partner
Top Description Methods
java.util

public Interface ListIterator<E>

extends Iterator<E>
Known Direct Implementers
java.util.ReverseOrderListView.DescendingListIterator, java.util.Vector.ListItr, java.util.concurrent.CopyOnWriteArrayList.COWIterator, java.util.concurrent.CopyOnWriteArrayList.COWSubListIterator, java.util.concurrent.CopyOnWriteArrayList.Reversed.DescendingListIterator, java.util.AbstractList.ListItr, java.util.ArrayList.ListItr, java.util.Collections.EmptyListIterator, java.util.ImmutableCollections.ListItr, java.util.LinkedList.ListItr
Type Parameters
<E>
the type of elements returned by this list iterator

An iterator for lists that allows the programmer to traverse the list in either direction, modify the list during iteration, and obtain the iterator's current position in the list. A ListIterator has no current element; its cursor position always lies between the element that would be returned by a call to previous() and the element that would be returned by a call to next(). An iterator for a list of length n has n+1 possible cursor positions, as illustrated by the carets (^) below:
                     Element(0)   Element(1)   Element(2)   ... Element(n-1)
cursor positions:  ^            ^            ^            ^                  ^
Note that the remove and set(Object) methods are not defined in terms of the cursor position; they are defined to operate on the last element returned by a call to next or previous().

This interface is a member of the Java Collections Framework.

Author
Josh Bloch
Since
1.2
See Also
Collection, List, Iterator, Enumeration, List#listIterator()

Method Summary

Modifier and TypeMethod and Description
public void
add(E
the element to insert
e
)

Inserts the specified element into the list (optional operation).

public boolean

Returns:

true if the list iterator has more elements when traversing the list in the forward direction
hasNext
()

Redeclares java.util.Iterator.hasNext.

Returns true if this list iterator has more elements when traversing the list in the forward direction.

public boolean

Returns:

true if the list iterator has more elements when traversing the list in the reverse direction
hasPrevious
()

Returns true if this list iterator has more elements when traversing the list in the reverse direction.

public E

Returns:

the next element in the list
next
()

Redeclares java.util.Iterator.next.

Returns the next element in the list and advances the cursor position.

public int

Returns:

the index of the element that would be returned by a subsequent call to next, or list size if the list iterator is at the end of the list
nextIndex
()

Returns the index of the element that would be returned by a subsequent call to next.

public E

Returns:

the previous element in the list
previous
()

Returns the previous element in the list and moves the cursor position backwards.

public int

Returns:

the index of the element that would be returned by a subsequent call to previous, or -1 if the list iterator is at the beginning of the list
previousIndex
()

Returns the index of the element that would be returned by a subsequent call to previous.

public void
remove()

Redeclares as abstract: java.util.Iterator.remove.

Removes from the list the last element that was returned by next or previous (optional operation).

public void
set(E
the element with which to replace the last element returned by next or previous
e
)

Replaces the last element returned by next or previous with the specified element (optional operation).

Inherited from java.util.Iterator:
forEachRemaining

Method Detail

addback to summary
public void add(E e)

Inserts the specified element into the list (optional operation). The element is inserted immediately before the element that would be returned by next, if any, and after the element that would be returned by previous, if any. (If the list contains no elements, the new element becomes the sole element on the list.) The new element is inserted before the implicit cursor: a subsequent call to next would be unaffected, and a subsequent call to previous would return the new element. (This call increases by one the value that would be returned by a call to nextIndex or previousIndex.)

Parameters
e:E

the element to insert

Exceptions
UnsupportedOperationException:
if the add method is not supported by this list iterator
ClassCastException:
if the class of the specified element prevents it from being added to this list
IllegalArgumentException:
if some aspect of this element prevents it from being added to this list
hasNextback to summary
public boolean hasNext()

Redeclares java.util.Iterator.hasNext.

Returns true if this list iterator has more elements when traversing the list in the forward direction. (In other words, returns true if next would return an element rather than throwing an exception.)

Returns:boolean

true if the list iterator has more elements when traversing the list in the forward direction

hasPreviousback to summary
public boolean hasPrevious()

Returns true if this list iterator has more elements when traversing the list in the reverse direction. (In other words, returns true if previous would return an element rather than throwing an exception.)

Returns:boolean

true if the list iterator has more elements when traversing the list in the reverse direction

nextback to summary
public E next()

Redeclares java.util.Iterator.next.

Returns the next element in the list and advances the cursor position. This method may be called repeatedly to iterate through the list, or intermixed with calls to previous to go back and forth. (Note that alternating calls to next and previous will return the same element repeatedly.)

Returns:E

the next element in the list

Exceptions
NoSuchElementException:
if the iteration has no next element
nextIndexback to summary
public int nextIndex()

Returns the index of the element that would be returned by a subsequent call to next. (Returns list size if the list iterator is at the end of the list.)

Returns:int

the index of the element that would be returned by a subsequent call to next, or list size if the list iterator is at the end of the list

previousback to summary
public E previous()

Returns the previous element in the list and moves the cursor position backwards. This method may be called repeatedly to iterate through the list backwards, or intermixed with calls to next to go back and forth. (Note that alternating calls to next and previous will return the same element repeatedly.)

Returns:E

the previous element in the list

Exceptions
NoSuchElementException:
if the iteration has no previous element
previousIndexback to summary
public int previousIndex()

Returns the index of the element that would be returned by a subsequent call to previous. (Returns -1 if the list iterator is at the beginning of the list.)

Returns:int

the index of the element that would be returned by a subsequent call to previous, or -1 if the list iterator is at the beginning of the list

removeback to summary
public void remove()

Redeclares as abstract: java.util.Iterator.remove.

Removes from the list the last element that was returned by next or previous (optional operation). This call can only be made once per call to next or previous. It can be made only if add has not been called after the last call to next or previous.

Exceptions
UnsupportedOperationException:
if the remove operation is not supported by this list iterator
IllegalStateException:
if neither next nor previous have been called, or remove or add have been called after the last call to next or previous
setback to summary
public void set(E e)

Replaces the last element returned by next or previous with the specified element (optional operation). This call can be made only if neither remove nor add have been called after the last call to next or previous.

Parameters
e:E

the element with which to replace the last element returned by next or previous

Exceptions
UnsupportedOperationException:
if the set operation is not supported by this list iterator
ClassCastException:
if the class of the specified element prevents it from being added to this list
IllegalArgumentException:
if some aspect of the specified element prevents it from being added to this list
IllegalStateException:
if neither next nor previous have been called, or remove or add have been called after the last call to next or previous