Overview | Package | Class | Use | Tree | Deprecated | Index | Help
| J2ME Foundation
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## java.util
Interface ListIterator

All Superinterfaces:
  Iterator

public interface ListIterator
extends Iterator

An iterator for lists that allows the programmer to traverse the list in either direction and modify the list during iteration.

Since:
  1.2
See Also:
  `Collection`, `List`, `Iterator`, `Enumeration`

Method Summary
`void` | `add(Object o)` Inserts the specified element into the list (optional operation).
`boolean` | `hasNext()` Returns `true` if this list iterator has more elements when traversing the list in the forward direction.
`boolean` | `hasPrevious()` Returns `true` if this list iterator has more elements when traversing the list in the reverse direction.
`Object` | `next()` Returns the next element in the list.
`int` | `nextIndex()` Returns the index of the element that would be returned by a subsequent call to `next`.
`Object` | `previous()` Returns the previous element in the list.
`int` | `previousIndex()` Returns the index of the element that would be returned by a subsequent call to `previous`.
`void` | `remove()` Removes from the list the last element that was returned by `next` or `previous` (optional operation).
`void` | `set(Object o)` Replaces the last element returned by `next` or `previous` with the specified element (optional operation).

Method Detail

### hasNext

    public boolean 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.)
  Specified by:
    `hasNext` in interface `Iterator`
  Returns:
    `true` if the list iterator has more elements when traversing the list in the forward direction.

### next

    public Object next()

  Returns the next element in the list. 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.)
  Specified by:
    `next` in interface `Iterator`
  Returns:
    the next element in the list.
  Throws:
    `NoSuchElementException` - if the iteration has no next element.

### hasPrevious

    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:
    `true` if the list iterator has more elements when traversing the list in the reverse direction.

### previous

    public Object previous()

  Returns the previous element in the list. 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:
    the previous element in the list.
  Throws:
    `NoSuchElementException` - if the iteration has no previous element.

### nextIndex

    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:
    the index of the element that would be returned by a subsequent call to `next`, or list size if list iterator is at end of list.

### previousIndex

    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:
    the index of the element that would be returned by a subsequent call to `previous`, or -1 if list iterator is at beginning of list.

### remove

    public void 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 `ListIterator.add` has not been called after the last call to `next` or `previous`.
  Specified by:
    `remove` in interface `Iterator`
  Throws:
    `UnsupportedOperationException` - if the `remove` operation is not supported by this list iterator.
    `IllegalStateException` - neither `next` nor `previous` have been called, or `remove` or `add` have been called after the last call to * `next` or `previous`.

### set

    public void set(Object o)

  Replaces the last element returned by `next` or `previous` with the specified element (optional operation). This call can be made only if neither `ListIterator.remove` nor `ListIterator.add` have been called after the last call to `next` or `previous`.
  Parameters:
    `o` - the element with which to replace the last element returned by `next` or `previous`.
  Throws:
    `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`.

### add

    public void add(Object o)

  Inserts the specified element into the list (optional operation). The element is inserted immediately before the next element that would be returned by `next`, if any, and after the next 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:
    `o` - the element to insert.
  Throws:
    `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 Set.
    `IllegalArgumentException` - if some aspect of this element prevents it from being added to this Collection.

Overview | Package | Class | Use | Tree | Deprecated | Index | Help
| J2ME Foundation
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

Java is a trademark or registred trademark of Sun Microsystems, Inc. in the US and other countries.
Copyright 1993-2000 Sun Microsystems, Inc. 901 San Antonio Road,
Palo, Alto, California, 94303, U.S.A All Rights Reserved. < /font >