Data structures 初始化Kotlin中LongArray的数组

Data structures 初始化Kotlin中LongArray的数组,data-structures,kotlin,Data Structures,Kotlin,我基本上想创建一个2D数组,它的大小在运行时我就知道了 我已经声明了LongArray的数组,如下所示 private lateinit var optionalGroup: Array<LongArray> 我的问题是如何使用组的大小初始化optionalGroup?我试过了 `optionalGroup = Array(group.size) thows错误没有为参数“init”传递值` 如果使用数组,则除了初始化每个元素的初始值之外别无选择 optionalGroup =

我基本上想创建一个2D数组,它的大小在运行时我就知道了

我已经声明了
LongArray
的数组,如下所示

private lateinit var optionalGroup: Array<LongArray>
我的问题是如何使用组的大小初始化optionalGroup?我试过了

`optionalGroup = Array(group.size)
thows错误没有为参数“init”传递值`


如果使用数组,则除了初始化每个元素的初始值之外别无选择

optionalGroup = Array(group.size) { LongArray(0) }
我建议您使用可变列表,以避免必须初始化元素:

private lateinit var optionalGroup: MutableList<LongArray>
optionalGroup = mutableListOf()
private lateinit var optionalGroup:MutableList
optionalGroup=mutableListOf()
如果这不是一个选项,您仍然可以使用临时可变列表并将其转换回类型化数组:

val tempList = mutableListOf<LongArray>()
group.forEach { (key, value) -> tempList[key - 1] = LongArray(value) }
optionalGroup = tempList.toTypedArray()
val templast=mutableListOf()
group.forEach{(key,value)->templast[key-1]=LongArray(value)}
optionalGroup=templast.toTypedArray()

要创建数组,需要传递数组的初始值
Array(group.size){LongArray(0)}
应该可以工作,但稍后您也将覆盖所有值。考虑使用<代码> MutableList < /代码>。一般情况下,应尽可能避免数组和使用列表;
val tempList = mutableListOf<LongArray>()
group.forEach { (key, value) -> tempList[key - 1] = LongArray(value) }
optionalGroup = tempList.toTypedArray()