我想知道如何在Kotlin中创建可调整大小的二维数组。
C++示例:vector< vector<int> > my_vector
我尝试过:var seqList: List<List<Int>> = ArrayList<ArrayList<Int>>()
但是当使用seqList.add()时,我遇到了一个错误。
错误:未解决的引用:add
我在stackoverflow上阅读了一些关于Kotlin中的二维数组的问题,但它们都是关于不可调整大小的数组或已经过时了。
Kotlin有单独的List
和MutableList
接口,如此处所述。例如,ArrayList
是一个MutableList
,您只需将其保存为MutableList
变量,以便能够访问会改变它的方法:
val seqList: MutableList<MutableList<Int>> = ArrayList() // alternatively: = mutableListOf()
seqList.add(mutableListOf<Int>(1, 2, 3))
mutableListOf
和 arrayListOf
方法,它们很方便地用于创建列表,而不是直接使用构造函数,例如 ArrayList
。
MutableList<T>
是在类型参数T
上具有协变性,因此MutableList<ArrayList<Int>>
不能赋值给MutableList<MutableList<Int>>
,ArrayList<ArrayList<Int>>
也是如此。相反,可以在右侧使用ArrayList<MutableList<Int>>()
,或者省略类型参数以使编译器推断它:只需使用ArrayList()
即可。 - hotkeyMutableList(n) { ... }
。 - hotkey