我基本上想创建2D数组,其大小在运行时为我所知
我有如下声明和LongArray
数组
private lateinit var optionalGroup: Array<LongArray>
我可以如下为其分配值,其中组是我的
Mutable Map
group.forEach { (key, value) -> optionalGroup[key - 1] = LongArray(value) }
我的问题是如何初始化大小为group的optionalGroup?我试过了
`optionalGroup = Array(group.size)
最佳答案
如果使用数组,则别无选择,只能初始化每个元素的初始值
optionalGroup = Array(group.size) { LongArray(0) }
我建议您改用可变列表,以避免必须初始化元素:
private lateinit var optionalGroup: MutableList<LongArray>
optionalGroup = mutableListOf()
如果这不是一个选项,您仍然可以使用临时可变列表并将其转换回类型数组:
val tempList = mutableListOf<LongArray>()
group.forEach { (key, value) -> tempList[key - 1] = LongArray(value) }
optionalGroup = tempList.toTypedArray()