131211訓練

投稿者: | 2013年12月11日

イテレータ(iterator)

forで配列の要素を参照する際に、
i番目の要素を得る手段がない、得るために時間がかかる。
クラスによって全要素を参照する手順が異なるのが不便。
そういった問題を解決するために提供されている繰り返し用のメソッド。
反復子。

実行結果

一郎21
二郎22
三郎23
四郎24
五郎25

マークした24~26行目の説明をば。
まずは各メソッドの解説を。

hasNext

次の要素があるかチェックする。
戻り値はboolean。あればtrue。なければfalse。

next

次の要素を要求するメソッド。
このサンプルではイテレータitに対して要求する。
呼び出すと次の要素に進む。
配列の添字をインクリメントすることと似たような処理。
要素2に注目していた場合は要素3へと要求を進める。

続いて処理のフロー(雑)

  • ArrayListのインスタンスxxのiteratorメソッドの戻り値(イテレータ)でitを初期化
  • it.hasNextの値がfalseになるまでforでループ
    1. xxx型のsetインスタンスにit.next();で得られる要素を代入
    2. setインスタンスのnameとageフィールドを出力
  • “五郎”,25の入った要素を呼び出すと次のhasNextの値がfalseになるためループ処理を終了する

こんなもんすかね。進度速くてギリギリやで・・・・。理解が。
こちらのサイトが詳しいです。これでなんとか追いつかせた。理解。

コレクション・フレームワーク-5.Iteratorインタフェース


コメント

Loading Facebook Comments ...

コメントを残す

No Trackbacks.