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

Kotlin中将Enumeration<String>转换为Array<String>的最佳方法

Kotlin中Enumeration转Array的最佳实现

最符合Kotlin编码规范、代码最简洁的实现方式是利用标准库扩展函数链式调用:

// 替换成你持有的Enumeration对象即可
val strArray: Array<String> = sourceEnumeration.toList().toTypedArray()

实现逻辑说明

  • 第一步调用Enumeration的toList()扩展方法,内部会自动遍历枚举的所有元素,生成不可变的List<String>实例,逻辑经过标准库校验,不会出现元素遗漏、遍历越界问题
  • 第二步调用List的toTypedArray()扩展方法,直接生成对应类型的Array<String>,不需要手动指定数组长度、逐个填充元素

其他可选方案说明

如果你的枚举元素量级极大,希望减少中间对象开销,也可以手动遍历枚举填充ArrayList后转数组:

val tempList = ArrayList<String>()
while (sourceEnumeration.hasMoreElements()) {
    tempList.add(sourceEnumeration.nextElement())
}
val strArray = tempList.toTypedArray()

注意:这个写法的逻辑和标准库toList()的内部实现基本一致,日常开发直接用链式调用写法即可,代码可读性更高,不需要重复实现通用逻辑。

不要尝试直接初始化固定长度的数组再遍历赋值,因为Enumeration没有提前暴露元素总个数的API,强行写需要先遍历一次计数、再遍历一次赋值,性能反而更差。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 18:01:09