我基本上想创建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()

10-08 02:33