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