JAVAとイテレータ

Oracle Technology Network for Java Developers | Oracle Technology Network | Oracle
をみると、私のイメージしているイテレータと違う。


私のイメージでは「呼び出し対象を初期化するrewind」「現在の要素が有効かどうかを確認するvalid」が必要なのだが、この文書では「初期化するメソッドはない」「次の要素があるかどうかを確認するhasNext」になっている。


次の要素があるか…というのはコードの書き方に注意すると「現在の要素が有効か」というのと同じだし、既存のものを再度初期化するのではなくて再度イテレータ自体を作ってしまうのだろう…(このイテレータはListのメソッドで作られるので)


個人的にはあまり好きな実装じゃないなぁ。というか、私のイメージするイテレータはどの言語のものなんだろう?何かで読んですり込まれているはずなんだが。(デザインパターンとかかも。)