私はまだJavaに慣れていないので、今日はイテレータの使用法を理解しようとしています。
だから私はいくつかの質問があります:
Iterableを実装する必要があるのはなぜですか。コレクションの新しいイテレーターを作成するメソッドしか提供しませんが、すべての要素を取得したい場合は、通常のforループまたはエンチャントされたforループを使用することもできます。私はすでにこの質問を読みました:Iterableインターフェースは何に使用されますか?その他にも、すべての要素を反復処理できると言われているだけなので、私の質問に戻ります。
Iterableを実装する場合、Iteratorも実装する必要がありますか?
これは実際に上書きするのに役立つ可能性のあるメソッドを提供するためです。
たとえば、オブジェクトをループに入れるかどうかに関係なく、クラスにブール値がある場合、次のように記述できます。public boolean hasNext() { if(loop) return true; //other things }
2.で述べたように、エンチャントされたforループはこれらの上書きされたメソッドを使用しますか?
たとえば、上記のループ属性の場合:forループは、それがtrueの場合、無限に実行されますか?
誰かが私がこの概念全体をよりよく理解するのを手伝ってくれることを願っています。