JAvaでのIteratorの使い方のまとめ


JavaでのIteratorの使い方
反復器(Iterator)
反復器は設計モードであり、シーケンス内のオブジェクトを遍歴して選択できますが、開発者はシーケンスの下位構造を理解する必要はありません.反復器は通常、作成のコストが小さいため、軽量オブジェクトと呼ばれます.
      Collection集合要素の一般的な取得方法:要素を取る前に集合に要素があるかどうかを判断し、ある場合はこの要素を取り出し、判断を続け、ある場合は取り出します.コレクション内のすべての要素を常に取り出します.この取り出し方式の専門用語を反復と呼ぶ.
集合では,このような要素の取り方をIteratorインタフェースに記述する.
JavaのIterator機能は比較的簡単で、一方的に移動するしかありません.
(1)使用方法iterator()はコンテナにIteratorを返すように要求する.Iteratorのnext()メソッドを最初に呼び出すと、シーケンスの最初の要素が返されます.注:iterator()メソッドはjava.lang.Iterableインタフェースであり、Collectionによって**が継承されます.
(2)next()を用いてシーケンス内の次の要素を得る.
(3)hasNext()を用いてシーケンスに要素があるかどうかを調べる.
(4)remove()を使用して、反復器で新しく返された要素を削除します.
IteratorはJava反復器の最も簡単な実装であり、リストのために設計されたListIteratorは、リストを2つの方向から遍歴したり、リストから要素を挿入したり削除したりするより多くの機能を有する.
 list l = new ArrayList();
 l.add("aa");
 l.add("bb");
 l.add("cc");
 for (Iterator iter = l.iterator(); iter.hasNext();) {
     String str = (String)iter.next();
     System.out.println(str);
 }
 /*     while  
 Iterator iter = l.iterator();
 while(iter.hasNext()){
     String str = (String) iter.next();
     System.out.println(str);
 }
 */

Iteratorのインタフェース定義:
public interface Iterator {  
  boolean hasNext();  
  Object next();        //              
  void remove();  
}  

              Object next():反復器が越えたばかりの要素の参照を返します.戻り値はObjectです.必要なタイプに強制的に変換する必要があります.
boolean hasNext():コンテナ内にアクセス可能な要素があるかどうかを判断する
void remove():反復器が越えたばかりの要素を削除
 反復の使用方法:(反復は実際には単純に遍歴と理解でき、各種コンテナ内のすべてのオブジェクトを標準化する方法クラスである)
for(Iterator it = c.iterator(); it.hasNext(); ) {  
  Object o = it.next();  
   //do something  
}  
________________________________________________________

while(iter.hasNext()){
     String str = (String) iter.next();
     System.out.println(str);