Scala 迭代器(Iterator)
1、简述
在Scala中,迭代器(Iterator)不是一个集合,是构建了一种访问集合的方法。当构建一个集合需要很大的开销时(比如把文件得所有行都读取到内存),迭代器就发挥了很好的作用。
迭代器有两个操作,next 和hasNext。next返回迭代器的下一个元素,hasNext用于检查是否还有下一个元素。
通常需要用while和for循环遍历迭代器。
2、while循环
scala> val iter = Iterator("Hadoop","Spark","Scala") iter: Iterator[String] = non-empty iterator scala> while (iter.hasNext) { | println(iter.next()) | } Hadoop Spark Scala
提示:上述执行操作结束后,迭代器会移动至末尾,就不能再用了,如果继续执行一次print(iter.next())就会报错。
另外,上述代码中,使用iter.next 和 iter.next() 都是一样的,但是iter.hasNext 就不能加括号。
3、for 循环
scala> val iter = Iterator("Hadoop","Spark","Scala") iter: Iterator[String] = non-empty iterator scala> for (elem <- iter) { | println(elem) | } Hadoop Spark Scala