- 型パラメータ:
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
- 関連項目:
-
メソッドのサマリー
-
メソッドの詳細
-
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
すべての要素の処理が完了するかアクションから例外がスローされるまで、残りの各要素に対して指定されたアクションを実行します。 反復の順序でアクションが実行されます(その順序が指定されている場合)。 アクションによってスローされた例外は、呼出し側に中継されます。オーバーライドするクラスが同時変更ポリシーを指定していないかぎり、アクションがコレクションを(
remove
メソッドまたはIterator
サブ型の他のメソッドを呼び出すことによっても)で変更した場合、イテレータの動作は指定されません。イテレータのそれ以降の動作は、アクションが例外をスローした場合には指定されません。
- 実装要件:
デフォルト実装の動作は次のようになります。
while (hasNext()) action.accept(next());
- パラメータ:
action
- 各要素に対して実行されるアクション- 例外:
NullPointerException
- 指定されたアクションがnullである場合- 導入されたバージョン:
- 1.8
-