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

インタフェースIterator<E>

    • メソッドのサマリー

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

      • 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