Colecciones Scala - Iterador

Un iterador no es una colección, sino una forma de acceder a los elementos de una colección uno por uno. Las dos operaciones básicas en uniterator it son next y hasNext. Una llamada ait.next()devolverá el siguiente elemento del iterador y avanzará el estado del iterador. Puede averiguar si hay más elementos para devolver utilizando Iterator'sit.hasNext método.

La forma más sencilla de "recorrer" todos los elementos devueltos por un iterador es utilizar un bucle while. Sigamos el siguiente programa de ejemplo.

Ejemplo

object Demo {
   def main(args: Array[String]) {
      val it = Iterator("a", "number", "of", "words")
      while (it.hasNext){
         println(it.next())
      }
   }
}

Guarde el programa anterior en Demo.scala. Los siguientes comandos se utilizan para compilar y ejecutar este programa.

Mando

\>scalac Demo.scala
\>scala Demo

Salida

a
number
of
words

Encontrar elemento valorado mínimo y máximo

Puedes usar it.min y it.maxmétodos para averiguar los elementos de valor mínimo y máximo de un iterador. Aquí usamosita y itbpara realizar dos operaciones diferentes porque el iterador solo se puede recorrer una vez. A continuación se muestra el programa de ejemplo.

Ejemplo

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 )
   }
}

Guarde el programa anterior en Demo.scala. Los siguientes comandos se utilizan para compilar y ejecutar este programa.

Mando

\>scalac Demo.scala
\>scala Demo

Salida

Maximum valued element 90
Minimum valued element 2

Encuentra la longitud del iterador

Puedes usar cualquiera it.size o it.lengthmétodos para averiguar el número de elementos disponibles en un iterador. Aquí, usamos ita e itb para realizar dos operaciones diferentes porque el iterador solo se puede recorrer una vez. A continuación se muestra el programa de ejemplo.

Ejemplo

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 )
   }
}

Guarde el programa anterior en Demo.scala. Los siguientes comandos se utilizan para compilar y ejecutar este programa.

Mando

\>scalac Demo.scala
\>scala Demo

Salida

Value of ita.size : 6
Value of itb.length : 6