Kotlin中可调整大小的二维数组

Mis*_*Tek 3 arrays arraylist kotlin

我想知道如何在Kotlin中制作可调整大小的二维数组.

C++示例: vector< vector<int> > my_vector

我尝试过的: var seqList: List<List<Int>> = ArrayList<ArrayList<Int>>()

但是在使用seqList.add()时出现错误

错误:未解析的引用:添加

我已经在stackoverflow上读了一些关于Kotlin中2d数组的问题,但它们是关于不可调整大小的数组或者已经过时了

zsm*_*b13 5

例如,Kotlin具有单独的ListMutableList接口,如这里所解释的.ArrayList是一个MutableList,您只需将其保存为MutableList变量,以便能够访问使其变异的方法:

val seqList: MutableList<MutableList<Int>> = ArrayList() // alternatively: = mutableListOf()

seqList.add(mutableListOf<Int>(1, 2, 3))
Run Code Online (Sandbox Code Playgroud)

还要注意标准库中的mutableListOfarrayListOf方法,它们可以方便地创建列表,而不是直接使用构造函数ArrayList.

  • 由于`MutableList <T>`在`T`中是变体,因此`MutableList <ArrayList <Int >>`不能分配给'MutableList <MutableList <Int >>`,也不是'ArrayList <ArrayList <Int >>`.相反,在右侧使用`ArrayList <MutableList <Int >>()`,或省略type参数以使编译器推断它:只是`ArrayList()` (2认同)
  • 糟糕,我的错,应该尝试运行代码。你可以按照@hotkey 的建议去做,我会更新我的答案。 (2认同)
  • 我想补充一点,自 Kotlin 1.1 以来,标准库中还有另一个函数可能在这里有用:工厂函数 [`MutableList(n) { ... }`](https://kotlinlang.org/api/最新/jvm/stdlib/kotlin.collections/-mutable-list.html) (2认同)