Scala 迭代器(Iterator)
阿新 • • 發佈:2018-12-06
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