description

# Iterator<E> class abstract interface

An interface for getting items, one at a time, from an object.

The for-in construct transparently uses `Iterator` to test for the end of the iteration, and to get each item (or element).

If the object iterated over is changed during the iteration, the behavior is unspecified.

The `Iterator` is initially positioned before the first element. Before accessing the first element the iterator must thus be advanced using moveNext to point to the first element. If no element is left, then moveNext returns false, and all further calls to moveNext will also return false.

The current value must not be accessed before calling moveNext or after a call to moveNext has returned false.

A typical usage of an `Iterator` looks as follows:

    var it = obj.iterator;
    while (it.moveNext()) {
      use(it.current);
    }

See also: Iteration in the introduction to `dart:core`.

Implementers
  - FixedSizeListIterator
  - RuneIterator
Available extensions
  - IteratorToJSIterator

## Properties

current → E
  The current element.
  no setter
hashCode → int
  The hash code for this object.
  no setter inherited
runtimeType → Type
  A representation of the runtime type of the object.
  no setter inherited
toJSIterator → JSIterator<T>

  Available on Iterator<T>, provided by the IteratorToJSIterator extension

  A JSIterator wrapper that proxies to the Dart iterator API.
  no setter

## Methods

moveNext() → bool
  Advances the iterator to the next element of the iteration.
noSuchMethod(Invocation invocation) → dynamic
  Invoked when a nonexistent method or property is accessed.
  inherited
toString() → String
  A string representation of this object.
  inherited

## Operators

operator ==(Object other) → bool
  The equality operator.
  inherited