我是Kotlin的一个新成员,我正在尝试编译一个非常简单的东西。我想用一行代码初始化一个列表数组。但是我总是不得不使用可变对象和插入到列表中。
这里我有什么 * 我不喜欢 *。它太复杂,很多行代码,数组不需要在现实中是可变的。它将永远是相同的大小和相同的元素数量。
val r0 = arrayListOf<Int>(1, 3, 5, 7)
val r1 = arrayListOf<Int>(10, 11, 16, 20)
val r2 = arrayListOf<Int>(23, 30, 34, 60)
val list: MutableList<ArrayList<Int>> = ArrayList()
list.add(r0)
list.add(r1)
list.add(r2)
可以,但我想要
val list2: List<ArrayList<Int>> = ArrayList(
arrayListOf<Int>(1, 3, 5, 7),
arrayListOf<Int>(10, 11, 16, 20),
arrayListOf<Int>(23, 30, 34, 60)
)
但这不编译,不确定为什么。
谢谢你,谢谢你。
2条答案
按热度按时间f0ofjuux1#
将您的原始文件(属于):
我将其修改为:Kotlin构造函数几乎总是遵循
arrayListOf
命名法,并且在=
之后的第一行中有ArrayList
。这些类型不是每个内部列表都必须的,因为您已经在变量中声明了它们
使用此模式的构造函数的其他示例:
listOf, mutableListOf, intArrayOf, booleanArrayOf
一些不相似的构造函数:
arrayOfNulls, emptyArray, emptyList
6rqinv9w2#
这里有一个简单的方法: