我基本上想创建2D数组,其大小在运行时
上为我所知我有如下声明和LongArray
数组
private lateinit var optionalGroup: Array<LongArray>
我可以如下为其分配值,其中 group 是我的Mutable Map
group.forEach { (key, value) -> optionalGroup[key - 1] = LongArray(value) }
我的问题是如何初始化大小为group的optionalGroup?我尝试过
`optionalGroup = Array(group.size)
出现错误,没有传递参数'init'`的值
答案 0 :(得分:2)
如果使用数组,则别无选择,只能初始化每个元素的初始值
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()