Long Iterator
Начиная с Kotlin: 1.0
abstract class LongIterator : Iterator<Long>
Итератор последовательности значений типа Long.
Это замена для Iterator<Long>, предоставляющая специализированную версию метода next(): T: nextLong(): Long, а также особую обработку компилятором, позволяющую избежать платформенно-зависимых преобразований с упаковкой в целях оптимизации производительности.
В следующем примере:
class LongContainer(private val data: LongArray) {
// LongIterator instead of Iterator<Long> in the signature
operator fun iterator(): LongIterator = object : LongIterator() {
private var idx = 0
override fun nextLong(): Long {
if (!hasNext()) throw NoSuchElementException()
return data[idx++]
}
override fun hasNext(): Boolean = idx < data.size
}
}
for (element in LongContainer(longArrayOf(1, 2, 3))) {
... handle element ...
}
При итерации в цикле for преобразование с упаковкой не выполняется. Обратите внимание, что сам итератор всё равно будет создан.
Конструкторы
constructor()
Функции
Начиная с Kotlin: 1.0
fun <T> Iterator<T>.withIndex(): Iterator<IndexedValue<T>>
Возвращает Iterator, который оборачивает каждый элемент исходного итератора в IndexedValue, содержащий индекс этого элемента и сам элемент.
© 2010–2026 JetBrains s.r.o. and Kotlin Programming Language contributors
Licensed under the Apache License, Version 2.0.
https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.collections/-long-iterator/index.html