Scala 集合 - 迭代器



迭代器不是集合,而是一種逐一訪問集合元素的方式。迭代器 **it** 的兩個基本操作是 **next** 和 **hasNext**。呼叫 **it.next()** 將返回迭代器的下一個元素並推進迭代器的狀態。您可以使用迭代器的 **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
廣告

© . All rights reserved.