Коллекции Scala - Итератор
Итератор - это не коллекция, а способ доступа к элементам коллекции один за другим. Две основные операции наiterator it находятся next и 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. Следующие команды используются для компиляции и выполнения этой программы.
Команда
\>scalac Demo.scala
\>scala Demo
Вывод
a
number
of
words
Найти элемент с минимальным и максимальным значением
Вы можете использовать it.min и it.maxметоды, чтобы узнать минимальное и максимальное значения элементов от итератора. Здесь мы использовалиita и itbдля выполнения двух разных операций, потому что итератор может быть пройден только один раз. Ниже приведен пример программы.
пример
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. Следующие команды используются для компиляции и выполнения этой программы.
Команда
\>scalac Demo.scala
\>scala Demo
Вывод
Maximum valued element 90
Minimum valued element 2
Найдите длину итератора
Вы можете использовать либо it.size или же it.lengthметоды, чтобы узнать количество элементов, доступных в итераторе. Здесь мы использовали ita и itb для выполнения двух разных операций, потому что итератор можно пройти только один раз. Ниже приведен пример программы.
пример
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. Следующие команды используются для компиляции и выполнения этой программы.
Команда
\>scalac Demo.scala
\>scala Demo
Вывод
Value of ita.size : 6
Value of itb.length : 6