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

Kotlin中如何在运行时初始化指定大小的MutableList数组

Kotlin动态大小MutableList数组的正确初始化方式

你原来的代码错误在于误用了arrayOf函数——arrayOf是用来直接传入元素创建数组的,并不支持“指定大小+初始化lambda”的用法。要创建运行时确定大小、每个元素都是新的MutableList<Float>的数组,应该使用**Array类的构造函数**,它专门支持传入长度和初始化逻辑。

正确的写法如下:

fun foo(numLists: Int) {
    // 使用Array构造器:第一个参数是数组大小,第二个lambda负责初始化每个位置的元素
    val daLists = Array(numLists) { 
        mutableListOf<Float>() 
    }

    // 正常使用数组中的列表
    daLists[0].add(1.5f)
    daLists[1].add(3.2f)
    // ...
}

关键说明:

  • Array(size: Int, init: (Int) -> T)构造器会根据传入的size创建对应长度的数组,然后对每个索引位置调用init函数生成元素。这里每个位置都返回一个全新的mutableListOf<Float>,保证所有列表都是独立可变的。
  • 如果你更倾向于使用Kotlin推荐的集合而非数组(除非有特定场景需求),也可以用MutableList的构造器实现相同效果:
    val daLists = MutableList(numLists) { mutableListOf<Float>() }
    
    写法更贴合Kotlin集合习惯,元素访问方式和数组一致,同样支持[]操作符。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.15 11:49:55