第 13 章 イテレータ

イテレータは、ストリームの命令型版です。ストリームのように、イテレータには無限リストを記述する能力があります。しかし、イテレータの成分を含むデー タ構造はありません。代わりに、2つの抽象メソッド next と hasNext を使って、イテレータはシーケンスをたどることができます。

trait Iterator[+A] { def hasNext: Boolean def next: A

}

メソッド next は、次の要素を返します。メソッド hasNext は next で返すべき要素がまだあるかどうかを示します。イテレータは他にもいくつかメソッドをサポートしていますが、それは後ほど説明します。

例として、1 から 100 までの数の平方を表示してみます。

val it: Iterator[Int] = Iterator.range(1, 100) while (it.hasNext) { val x = it.next println(x * x) }