如何创建列表列表?
我有一个可变的整数列表:
val rsrpList = mutableListOf<Int>()
现在我正在尝试创建一个列表列表,如下所示:
val rsrpList = mutableListOf<Int>()
val rsrqList = mutableListOf<Int>()
val levelList = mutableListOf<Int>()
val listoflists = List<List<Int>>
listoflists.add(rsrpList)
listoflists.add(rsrqList)
listoflists.add(levelList)
但我知道这是错误的,因为我一次添加一个列表,而不是一个列表列表。我该怎么做?
答案 0 :(得分:2)
您可以使用 Kotlin 标准库执行此操作。 List
和 MutableList
都可以创建为特定大小(在本例中为 3)并指定将初始化每个值的 lambda。
val listOfList = MutableList(3) { mutableListOf<Int>() }
或者:
val listOfList = List(3) { mutableListOf<Int>() }
更新:使用预先创建的列表初始化列表:
val listOfList = listOf(list1, list2, list3)
或者在您的特定情况下:
val listOfList = listOf(rsrpList, rsrqList, levelList)
并且在这两种情况下,如果您想要一个可变列表作为主要类型,您都可以将 listOf
替换为 mutableListOf
。
答案 1 :(得分:0)
您的示例很好(您有一个空列表,您正在向该列表添加列表,最终得到一个列表列表!)但是如果您试图通过一次声明所有内容来避免可变性:>
val listOfLists = listOf(rsrpList, rsrqList, levelList)
如果需要,您可以同时声明这些列表
val listOfLists = listOf(
listOf(1, 2, 3),
listOf(9, 8, 7),
listOf(7, 7, 7)
)
或者你可以使用 mutableListOf
如果你需要它们中的任何一个是可变的!那里的格式不是必需的,我只是认为它们的嵌套方式看起来更清晰