Coleções Scala - Iterator
Um iterador não é uma coleção, mas sim uma maneira de acessar os elementos de uma coleção um por um. As duas operações básicas em umiterator it está next e hasNext. Uma chamada parait.next()retornará o próximo elemento do iterador e avançará o estado do iterador. Você pode descobrir se há mais elementos para retornar usando o Iteratorit.hasNext método.
A maneira mais direta de "percorrer" todos os elementos retornados por um iterador é usar um loop while. Vamos seguir o seguinte programa de exemplo.
Exemplo
object Demo {
def main(args: Array[String]) {
val it = Iterator("a", "number", "of", "words")
while (it.hasNext){
println(it.next())
}
}
}
Salve o programa acima em Demo.scala. Os seguintes comandos são usados para compilar e executar este programa.
Comando
\>scalac Demo.scala
\>scala Demo
Resultado
a
number
of
words
Encontre o elemento de valor mínimo e máximo
Você pode usar it.min e it.maxmétodos para descobrir os elementos de valor mínimo e máximo de um iterador. Aqui, usamosita e itbpara executar duas operações diferentes porque o iterador pode ser percorrido apenas uma vez. A seguir está o programa de exemplo.
Exemplo
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 )
}
}
Salve o programa acima em Demo.scala. Os seguintes comandos são usados para compilar e executar este programa.
Comando
\>scalac Demo.scala
\>scala Demo
Resultado
Maximum valued element 90
Minimum valued element 2
Encontre o comprimento do iterador
Você pode usar qualquer it.size ou it.lengthmétodos para descobrir o número de elementos disponíveis em um iterador. Aqui, usamos ita e itb para realizar duas operações diferentes porque o iterador pode ser percorrido apenas uma vez. A seguir está o programa de exemplo.
Exemplo
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 )
}
}
Salve o programa acima em Demo.scala. Os seguintes comandos são usados para compilar e executar este programa.
Comando
\>scalac Demo.scala
\>scala Demo
Resultado
Value of ita.size : 6
Value of itb.length : 6