Scala Collection – Iterator

Iterator cho phép người dùng thực hiện lặp trên các collection do đó truy cập tất cả các phần tử. Iterator có 2 phương thức quan trọng đó là nexthasNext . Các phần tử kế tiếp trả về phần tử kế tiếp và hasNext sẽ kiểm tra xem phần tử đó có tồn tại hay không
Hãy cùng xem ví dụ sau đây
object Car {
  def main(args: Array[String]) {
    val car = Iterator("Santro", "Punto", "WagonR", "Polo", "Audi")
    while (car.hasNext) {
      println(car.next())
    }
  }
}
Kết quả
Santro
Punto
WagonR
Polo
Audi

Độ dài của Iterator

Các phương thức size hoặc length  dùng để tìm số phần tử trong Iterator

Hãy cùng xem ví dụ sau

object CarLength {
  def main(args: Array[String]) {
    val c1 = Iterator("Santro", "Punto", "WagonR", "Polo", "Audi")
    val c2 = Iterator("Volkswagen", "Alto", "Xylo", "Innova")
    println("Iterator c1 : " + c1.size)
    println("Length of c2 : " + c2.length)
  }
}

Kết quả

Iterator c1 : 5
Length of c2 : 4

Tìm phần tử lớn nhất và nhỏ nhất

Các phương thức it.minit.max dùng để tìm phần tử lớn nhất và nhỏ nhất trong iterator

object MinMax {
   def main(args: Array[String]) {
  	val m1 = Iterator(12,45,67,89)
  	val m2 = Iterator(44,66,77,88)
  	println("Smallest element " + m1.min )
  	println("Largest element " + m2.max )
   }
}

Kết quả

Smallest element 12
Largest element 88

Các phương thức hữu ích trong Iterator

  • def addString(x: StringBuilder): StringBuilder → Nối các phần tử của Iterator và một StringBuilder và trả về StringBuilder mới
scala> val it=Iterator(3,2,4,9,7)
it: Iterator[Int] = non-empty iterator
scala> it.addString(new StringBuilder())
res18: StringBuilder = 32497
  • def buffered: BufferedIterator[X] → Chuyển đổi một Iterator thành một BufferedIterator
scala> val it=Iterator(3,2,4,9,7)
it: Iterator[Int] = non-empty iterator
scala> it.buffered
res20: scala.collection.BufferedIterator[Int] = non-empty iterator
  • def foreach(f: (X) => Unit): Unit → Dùng để lặp tất cả các phần tử trong Iterator với tham số đầu vào là một function
  • def indexOf(elem: Y): Int → trả về index của phần tử đầu tiên khi tìm phần tử elem trong Iterator
scala> val it=Iterator(3,2,4,9,7)
it: Iterator[Int] = non-empty iterator
scala> it.indexOf(2)
res58: Int = 1
  • def product: X → Nhân các phần tử trong Iterator
scala> val it=Iterator(3,2,4,9,7)
it: Iterator[Int] = non-empty iterator
scala> it.product
res92: Int = 1512

You May Also Like

About the Author: Nguyen Dinh Thuc

Leave a Reply

Your email address will not be published.