1. 程式人生 > >Scala 迭代器(Iterator)

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