0

我需要在MutableList<String>地图上添加一些Map<String, List<String>>,这是我尝试初始化它的方式:

    private var theSteps: MutableList<String> = mutableListOf()
    private var optionsList: Map<String, List<String>> = mapOf()

然后我以这种方式将数据添加到`MutableList:

        theSteps.add("one")
        theSteps.add("two")
        theSteps.add("three")

一切正常,直到我尝试添加Map

optionsList.add("list_1" to theSteps)

它只是给了我错误Unresolved reference add,我找不到有关如何向其中添加项目的明确文档。

4

2 回答 2

2

您无法添加到地图,因为mapOf正在创建只读地图

fun <K, V> mapOf(): Map<K, V>

返回一个空的只读映射。

您可能想要创建一个MutableMap(或类似的)

private var optionsList: Map<String, List<String>> = mutableMapOf()

然后,您可以使用 plus 方法:

optionsList = optionsList.plus("list_1" to theSteps)

或者查看@voddan 的其他选项:

val nameTable = mutableMapOf<String, Person>()    
fun main (args: Array<String>) {
    nameTable["person1"] = example
于 2019-12-26T10:38:42.040 回答
2

optionsList必须是 aMutableMap添加任何东西,就像你有一个MutableList; 或者你可以使用

theSteps += "list_1" to theSteps

使用添加的对和更新变量创建新地图。theSteps这调用了plus扩展函数

通过从给定的键值对替换或添加到此映射的条目来创建新的只读映射。

(搜索上述内容以获得正确的重载)

于 2019-12-26T10:39:23.280 回答