如何在 kotlin 的地图中添加列表

How add a list inside a map in kotlin

我需要向地图 Map<String, List<String>> 添加一些 MutableList<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,我找不到关于如何向其添加项目的明确文档。

您无法添加到您的地图,因为 mapOf 正在创建 read-only map

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

Returns an empty read-only map.

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

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

然后你可以使用加法:

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

或将 other options 视为@voddan:

val nameTable = mutableMapOf<String, Person>()    
fun main (args: Array<String>) {
    nameTable["person1"] = example

optionsList 必须是 MutableMap 才能添加任何内容,就像您有一个 MutableList 一样;或者你可以使用

theSteps += "list_1" to theSteps

使用添加的对创建 new 映射并更新 theSteps 变量。这调用 plus extension function:

Creates a new read-only map by replacing or adding an entry to this map from a given key-value pair.

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