Scala 集合 - 迭代器
迭代器不是集合,而是一种逐个访问集合元素的方法。 iterator it 上的两个基本操作是 next 和 hasNext。 对 it.next() 的调用将返回迭代器的下一个元素并推进迭代器的状态。 您可以使用 Iterator 的 it.hasNext 方法查看是否还有更多元素要返回。
"单步执行"迭代器返回的所有元素的最直接方法是使用 while 循环。 让我们按照以下示例程序进行操作。
示例
object Demo { def main(args: Array[String]) { val it = Iterator("a", "number", "of", "words") while (it.hasNext){ println(it.next()) } } }
将上述程序保存在Demo.scala中。 以下命令用于编译和执行该程序。
命令
\>scalac Demo.scala \>scala Demo
输出
a number of words
查找最小值和最大值元素
您可以使用 it.min 和 it.max 方法从迭代器中找出最小和最大值元素。 这里,我们使用 ita 和 itb 来执行两个不同的操作,因为迭代器只能遍历一次。 以下是示例程序。
示例
object Demo { def main(args: Array[String]) { val ita = Iterator(20,40,2,50,69, 90) val itb = Iterator(20,40,2,50,69, 90) println("Maximum valued element " + ita.max ) println("Minimum valued element " + itb.min ) } }
将上述程序保存在Demo.scala中。 以下命令用于编译和执行该程序。
命令
\>scalac Demo.scala \>scala Demo
输出
Maximum valued element 90 Minimum valued element 2
求迭代器的长度
您可以使用 it.size 或 it.length 方法来查找迭代器中可用元素的数量。 这里,我们使用 ita 和 itb 来执行两个不同的操作,因为迭代器只能遍历一次。 以下是示例程序。
示例
object Demo { def main(args: Array[String]) { val ita = Iterator(20,40,2,50,69, 90) val itb = Iterator(20,40,2,50,69, 90) println("Value of ita.size : " + ita.size ) println("Value of itb.length : " + itb.length ) } }
将上述程序保存在Demo.scala中。 以下命令用于编译和执行该程序。
命令
\>scalac Demo.scala \>scala Demo
输出
Value of ita.size : 6 Value of itb.length : 6