MST

星途 面试题库

面试题:Kotlin 中如何实现一个自定义的迭代器用于遍历集合?

假设你有一个自定义的 Kotlin 类,它包含一些数据元素。请你编写代码,为这个类实现一个迭代器,使其能够像 Kotlin 内置集合一样被 `for - in` 循环遍历。描述清楚实现的步骤,并给出完整的代码示例。
22.9万 热度难度
编程语言Kotlin

知识考点

AI 面试

面试题答案

一键面试
  1. 实现步骤
    • 首先,在自定义类中定义一个数据结构来存储元素,例如List
    • 然后,实现Iterable接口,该接口要求实现iterator()方法。
    • iterator()方法中,返回一个实现了Iterator接口的对象。Iterator接口有hasNext()next()方法,分别用于判断是否还有下一个元素以及获取下一个元素。
  2. 代码示例
class CustomClass<T> : Iterable<T> {
    private val elements = mutableListOf<T>()

    fun addElement(element: T) {
        elements.add(element)
    }

    override fun iterator(): Iterator<T> {
        var currentIndex = 0
        return object : Iterator<T> {
            override fun hasNext(): Boolean {
                return currentIndex < elements.size
            }

            override fun next(): T {
                return elements[currentIndex++]
            }
        }
    }
}

你可以这样使用:

fun main() {
    val custom = CustomClass<Int>()
    custom.addElement(1)
    custom.addElement(2)
    custom.addElement(3)
    for (element in custom) {
        println(element)
    }
}