Scala疊代器

2019-10-16 23:14:30

疊代器不是集合,而是一種逐個存取集合元素的方法。 下一個疊代器的兩個基本操作是hasNext。 對it.next()方法的呼叫將返回疊代器的下一個元素,並提高疊代器的狀態。可以使用Iteratorit.hasNext方法判斷是否還有更多元素返回。

疊代器返回的所有元素最直接的方法是使用while迴圈。讓我們參考以下範例程式 -

範例

object Demo {
   def main(args: Array[String]) {
      val it = Iterator("a", "number", "of", "words")

      while (it.hasNext){
         println(it.next())
      }
   }
}

將上述程式儲存在原始檔:Demo.scala中,使用以下命令編譯和執行此程式。

D:\>scalac Demo.scala
D:\>scala Demo
a
number
of
words

查詢最小和最大值元素

可以使用it.minit.max方法從疊代器中找出最小值和最大值元素。 在這裡,我們使用itaitb執行兩個不同的操作,因為疊代器只能遍歷一次。以下是範例程式。

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中,使用以下命令編譯和執行此程式。

D:\>scalac Demo.scala
D:\>scala Demo
Maximum valued element 90
Minimum valued element 2

查詢疊代器的長度

可以使用it.sizeit.length方法來查詢疊代器中可用的元素數量。在這裡,我們使用itaitb執行兩個不同的操作,因為疊代器只能遍歷一次。 以下是範例程式的程式碼 -

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中,使用以下命令編譯和執行此程式。

D:\>scalac Demo.scala
D:\>scala Demo
Value of ita.size : 6
Value of itb.length : 6