You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

是否有标准方法将Kotlin Sequence转换为java.util.Enumeration?

关于Kotlin Sequence转Java Enumeration的标准库实现问题

你观察得特别准——Kotlin的Sequence和Java的Enumeration确实在懒加载迭代元素的核心逻辑上高度相似,都是按需生成/获取下一个元素,不会一次性加载全部内容。

先直接给你答案:Kotlin标准库目前并没有提供现成的Sequence.toEnumeration()扩展函数。主要原因是Enumeration属于Java早期的迭代接口,现在Java和Kotlin生态里更推荐使用Iterator(以及基于它的Sequence、Iterable等现代API),所以标准库没有特意为这个相对老旧的接口提供转换工具。

不过你自己实现的这个函数完全没问题!它的逻辑非常标准:用Sequence的iterator()来代理Enumeration的两个核心方法,既简洁又能保证行为一致。这里再把你的代码格式化一下,方便查看:

fun <T> Sequence<T>.toEnumeration(): Enumeration<T> {
    val iterator = this.iterator()
    return object : Enumeration<T> {
        override fun hasMoreElements() = iterator.hasNext()
        override fun nextElement(): T = iterator.next()
    }
}

如果之后你需要反向转换(把Enumeration转成Sequence),也可以用类似的简洁实现:

fun <T> Enumeration<T>.toSequence(): Sequence<T> = generateSequence {
    if (hasMoreElements()) nextElement() else null
}

你的实现已经很完美了,直接用就好~

内容的提问来源于stack exchange,提问作者Martin Eden

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.28 10:06:35