13.3 イテレータの使用

イテレータの使い方の例をさらに2つあげます。最初は、配列 xs: Array[Int]のすべての要素を表示するもので、次のように書けます。

Iterator.fromArray(xs) foreach (x => println(x))

または for 内包表記を使っても書けます。

for (x <- Iterator.fromArray(xs)) println(x)

二つ目の例として、double の配列のうち、要素がある値より大きいすべてのインデックスを求めることを考えます。インデックスはイテレータとして返されるものとします。これは、次の式で実現できます。

import Iterator._ fromArray(xs).zip(from(0)).filter(case (x, i) => x > limit).map(case (x, i) => i)

または for 内包表記を使っても実現できます。

import Iterator._ for ((x, i) <- fromArray(xs) zip from(0); if x > limit) yield i