Iteratorインタフェースの代表的メソッド

Collection<E>はIterable<E>を拡張しており、Iterable<E>はIterator<E>インタフェースを実装したオブジェクトを返すiteratorメソッドを定義している。
若干ややこしいが、ようはCollection<E>の要素を取得しながらループを回すようなケースでは、Collection<E>から事前にiteratorメソッドでイテレーターを取得しておけば、ループを回す処理を共通化して書けますよってこと。

    public void sample(Collection coll) {
    	Iterator it = coll.iterator(); // イテレーター取得
    	while (it.hasNext()) {
    		String str = it.next();
    		System.out.println(str);
    		it.remove();
    	}
    }

こんな感じね。
Iteratorの代表的メソッドは以下。
public boolean hasNext()
要素がまだある場合に、trueを返す。
public E next()
次の要素を返す。次の要素がなければ、実行時例外NoSuchElementExceptionがスローされる。
public void remove()
nextが指す要素を削除する。事前にnextメソッドの実行が必須。nextが呼び出されていないか、next呼びだし後、2回removeを実行したら、実行時例外IllegalStateExceptionがスローされる。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です