自分用メモ。
Iteratorの仕組みについて知りたくなってきた。
ちょっと前にも書いたけれど、Vectorの中身を順に見る時にIteratorを使用し
ぐるぐる回す。
わざわざIteratorに変換(?)して中を見る方法と、
VectorのままelementAt()などを用いて見る方法では、
特に、拡張性とするとあまり変わりは無い。
ただ、Vectorと同じようなCollection系のクラスで同一に持っているのは
iterator()。
なので、iterator()を使おうという雰囲気・・で、良いんだよね?
この辺を考えているときに、Iteratorの仕組みが気になった。
API仕様をみても、インターフェースであるIteratorを実装しているクラスが
見当たらない。
なので、srcフォルダを解凍し、直接ソースを見ていった。
結果は、予想外(?)で、
AbstractListクラスのインナークラスとして定義されていた。
インナークラスから、それを含んでいるクラスの操作を見る
ことが可能にすることが出来るので、そのあたりを利用し作
り込んでいた。なるほどねー。
文章での説明は難しいので、クラス図を張り付けておく。
図のサイズが大きいのでリンク。
クラス図