表紙 > JAVA > イテレータ

イテレータ

8 月 08
JAVA aa

今日は java.util.Listインターフェイスのページ。

まったく初めての単語が出てきた。

Genericsとイテレータ

Generics じぇねりっくす

総称型。

JavaやC++Templateにおいて、コレクションフレームワークで良く使われる、あるオブジェクトに入れ子(集約(Aggregation, Composition)など)になっている別のオブジェクトの型を限定することで、余計なバグを減らすもの。

これにより、そのオブジェクトに入れ子になっているオブジェクトを取り出すたびにそのオブジェクトの型が何型であるかを調べる必要がなくなる。

Javaの例

List<String> list = new ArrayList<String>();
list.add("リストに文字列追加");
//list.add(1); //数字を追加。String型ではないためエラーとなる。

for (String element : list) {
//listの中に入っているものはすべてStringとわかっているので、明示的にダウンキャストする必要はない。
    System.out.println(element);
}

ここでListやArrayListのようなインタフェースクラスのことを「パラメタライズクラス(インタフェース)」「ジェネリッククラス(インタフェース)」という。
の部分のことのようです。


イテレータ

イテレータ (Iterator) とは、プログラミング言語において配列やそれに類似するデータ構造の各要素に対する繰返し処理の抽象化である。実際のプログラミング言語では、オブジェクトまたは文法などとして現れる。

うん、これはヤヴァイネ。わからんね。

繰返し処理の抽象化..
その1.
for(int i=0;i < data.size();++i){
    String str;
    str = (String)data.get(i);
    taOutput.append(str+"\n");
}

その2.
Iterator it = data.iterator();
while (it.hasNext())
{
    Object val = it.next();
    taOutput.append(val+"\n");
}

この2つが同じ結果で出てくる。

なーんとなくphpでいうところの arrayやforeachの単語が頭に浮かぶけどうまいイテレータの説明ができんなぁ。

追記::

って、次のページ読んだら載ってるぢゃん。

イテレーター

Listインターフェイスのオブジェクトは番号を指定することによる要素の効率が悪いものもあるので要素番号が必要ないときにはIteratorオブジェクトを使うようにします。

Generics

Genericsによる型の保証
Listオブジェクトって何でも入っちゃうのでバグがあったときに見つけにくいので。

コメント:2

aokt 08-08-08 (金) 12:57

今日は あれですよ

そろばんの日です

ヤスヲ 08-08-08 (金) 13:14

なるほど「ぱちぱち」って!?

返信は無いかもしれないですが初めてのコメントどうですか?
名前とかを保存しちゃう?

トラックバック:1

トラックバックです。バンバンしてあげてください。
http://www.ezo-style.com/2008/08/08/%e3%82%a4%e3%83%86%e3%83%ac%e3%83%bc%e3%82%bf/trackback/
Listed below are links to weblogs that reference
イテレータ from エゾスタイル
trackback from エゾスタイル 08-08-08 (金) 9:39
エゾスタイル

イテレータ…

今日はjava.util.Listインターフェイスのページ。まったく初めての単語が出てきた。Genericsとイテレータ Genericsじぇねりっくす総称型。JavaやC++Templateにおいて、コレクションフレームワー…


表紙 > JAVA > イテレータ