JavaA2Z

KAB-studio > プログラミング > JavaA2Z > Iteratorとは

Iterator

日本語 反復子
英語 iterator
ふりがな いてれーたー
フリガナ イテレーター

解説

J2SEに含まれるインターフェイスのひとつ。パッケージも含めたインターフェイス名はjava.util.Iterator。
イテレーターとして機能するためのメソッドを持つ。
 
コレクションCollectionインターフェイスのiterator()メソッドでIteratorインターフェイス実装クラスを取得できる。
配列CollectionインターフェイスのtoArray()コレクション化できるため、配列イテレーターでアクセスできる。
Iteratorはコレクションの中身の要素ひとつを指し示す「カーソル」を持つ。
Collectionインターフェイスのiterator()で取得した時点で、カーソルは「先頭のひとつ前」を指し示している。
next()メソッドで「次の要素にカーソルを進めその値を返す」という処理をする。ただし、戻り値Objectなので、コレクションに格納されている実際のダウンキャストする必要がある。
hasNext()メソッドで「カーソルの次の要素が存在するか」を取得することができる。
 
添え字によるインデックスナンバーを使用して取得する方法に比べて、イテレーターは「先頭から順次取得しかできない」「前進と取得を別々にえない」「取得しかできない」「ランダムアクセスできない」といった制限があるが、逆にそれが配列操作で陥りやすいバグを回避してくれるため、可能な限りイテレーターを使用すべき。

参考サイト


(KAB-studioからのおしらせです)

サンプルプログラム(とか)サンプルを別ウィンドウで表示サンプルをクリップボードへコピー(WindowsでIEの場合のみ)

// Sample.java
import java.util.ArrayList;
import java.util.Iterator;

public class Sample
{
    public static void main( String[] args )
    {
        // ArrayListを作ります。
        ArrayList arylst = new ArrayList();
        arylst.add( new Integer( 100 ) );
        arylst.add( new Integer( 200 ) );
        arylst.add( new Integer( 300 ) );
        // イテレーターを使用して全項目を出力します。
        for( Iterator iter = arylst.iterator(); iter.hasNext(); )
        {
            // next()メソッドで取得すると同時にひとつ進めます。
            Integer integer = (Integer)iter.next();
            System.out.print( integer + ", "  );
        }
        System.out.println();
        // 100, 200, 300, 
    }
}
// Sample.java
import java.util.ArrayList;
import java.util.Iterator;

public class Sample
{
    public static void main( String[] args )
    {
        // ArrayListを作ります。
        ArrayList arylst = new ArrayList();
        arylst.add( new Integer( 100 ) );
        arylst.add( new Integer( 200 ) );
        arylst.add( new Integer( 300 ) );
        // イテレーターを使用して全項目を出力します。
        for( Iterator iter = arylst.iterator(); iter.hasNext(); )
        {
            // next()メソッドで取得すると同時にひとつ進めます。
            Integer integer = (Integer)iter.next();
            System.out.print( integer + ", "  );
        }
        System.out.println();
        // 100, 200, 300, 
    }
}

この単語を含むページ

「みだし」に含まれているページ

「解説」に含まれているページ

はてなブックマーク 詳細を表示 はてなブックマーク ブックマーク数
livedoorクリップ 詳細を表示 livedoorクリップ ブックマーク数
Yahoo!ブックマーク 詳細を表示 users
del.icio.us 登録する RSSに登録
サンプルを別ウィンドウで表示
サンプルをクリップボードへコピー(WindowsでIEの場合のみ)
update:2005/10/11
このページは、Javaプログラミング言語についての用語を網羅した辞書「JavaA2Z」の一ページです。
詳しくは「JavaA2Z」表紙の説明をご覧ください。