在 kotlin 中创建列表列表?

时间:2021-04-05 15:35:21

标签: kotlin

如何创建列表列表?

我有一个可变的整数列表:

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)

但我知道这是错误的,因为我一次添加一个列表,而不是一个列表列表。我该怎么做?

2 个答案:

答案 0 :(得分:2)

您可以使用 Kotlin 标准库执行此操作。 ListMutableList 都可以创建为特定大小(在本例中为 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 如果你需要它们中的任何一个是可变的!那里的格式不是必需的,我只是认为它们的嵌套方式看起来更清晰

相关问题