モジュール java.base
パッケージ java.util

インタフェースIterator<E>

型パラメータ:
E - このイテレータで返される要素の型
既知のすべてのサブインタフェース:
EventIterator, ListIterator<E>, PrimitiveIterator<T,T_CONS>, PrimitiveIterator.OfDouble, PrimitiveIterator.OfInt, PrimitiveIterator.OfLong, XMLEventReader
既知のすべての実装クラス:
BeanContextSupport.BCSIterator, EventReaderDelegate, Scanner

public interface Iterator<E>
コレクションのイテレータです。 Iteratorは、Java Collections FrameworkにおいてEnumerationの代わりとなります。 イテレータは、次の2つの点で列挙と異なります。
  • イテレータを使用すると、明確なセマンティックスに基づく反復処理の間に、呼出し側は基本となるコレクションから要素を削除できる。
  • メソッド名が改良されている。

このインタフェースは、Java Collections Frameworkのメンバーです。

APIのノート:
Enumerationは、Enumeration.asIterator()メソッドを使用してIteratorに変換できます。
導入されたバージョン:
1.2
関連項目:
  • メソッドのサマリー

    修飾子と型
    メソッド
    説明
    default void
    forEachRemaining(Consumer<? super E> action)
    すべての要素の処理が完了するかアクションから例外がスローされるまで、残りの各要素に対して指定されたアクションを実行します。
    boolean
    反復処理でさらに要素がある場合にtrueを返します。
    反復処理で次の要素を返します。
    default void
    ベースとなるコレクションから、このイテレータによって最後に返された要素を削除します(オプションの操作)。
  • メソッドの詳細

    • hasNext

      boolean hasNext()
      反復処理でさらに要素がある場合にtrueを返します。 (つまり、next()が例外をスローするのではなく要素を返す場合は、trueを返します。)
      戻り値:
      反復処理でさらに要素がある場合はtrue
    • next

      E next()
      反復処理で次の要素を返します。
      戻り値:
      反復処理での次の要素
      例外:
      NoSuchElementException - 反復処理で要素がない場合
    • remove

      default void remove()
      ベースとなるコレクションから、このイテレータによって最後に返された要素を削除します(オプションの操作)。 このメソッドは、next()の呼び出しごとに1回だけ呼び出すことができます。

      イテレータの動作は、オーバーライドするクラスが同時変更ポリシーを指定していないかぎり、このメソッドをコールする以外の方法で反復の進行中に基礎となるコレクションが変更された場合には指定されません。

      このメソッドがforEachRemainingメソッドの呼出し後に呼び出された場合、イテレータの動作は指定されません。

      実装要件:
      デフォルト実装は、UnsupportedOperationExceptionのインスタンスをスローし、他のアクションを実行しません。
      例外:
      UnsupportedOperationException - removeオペレーションがこのイテレータでサポートされない場合
      IllegalStateException - nextメソッドがまだ呼び出されてない場合、またはnextメソッドの最後の呼出しのあとにremoveメソッドがすでに呼び出されている場合
    • forEachRemaining

      default void forEachRemaining(Consumer<? super E> action)
      すべての要素の処理が完了するかアクションから例外がスローされるまで、残りの各要素に対して指定されたアクションを実行します。 反復の順序でアクションが実行されます(その順序が指定されている場合)。 アクションによってスローされた例外は、呼出し側に中継されます。

      オーバーライドするクラスが同時変更ポリシーを指定していないかぎり、アクションがコレクションを(removeメソッドまたはIteratorサブ型の他のメソッドを呼び出すことによっても)で変更した場合、イテレータの動作は指定されません。

      イテレータのそれ以降の動作は、アクションが例外をスローした場合には指定されません。

      実装要件:

      デフォルト実装の動作は次のようになります。

      
           while (hasNext())
               action.accept(next());
       

      パラメータ:
      action - 各要素に対して実行されるアクション
      例外:
      NullPointerException - 指定されたアクションがnullである場合
      導入されたバージョン:
      1.8