Реализации на Kotlin
Iterator
Общая реализация на языке Kotlin
interface IIterator<T> {
fun hasNext(): Boolean
fun next(): T
}class ReverseIterator<T>(private val collection: List<T>) : IIterator<T> {
private var currentIndex: Int = collection.size - 1
override fun hasNext(): Boolean = currentIndex >= 0
override fun next(): T {
val item = collection[currentIndex--]
return item
}
}object ListUtil {
fun <T>List<T>.reverseIterator(): ReverseIterator<T> = ReverseIterator(this)
}fun main() {
val digits = listOf(1, 3, 5, 9, 7, 3)
val iterator = digits.reverseIterator()
while (iterator.hasNext()) {
println(iterator.next())
}
// default iterator
for (digit in digits) {
println(digit)
}
}Last updated
Was this helpful?