【问题标题】:How add a list inside a map in kotlin如何在kotlin中的地图内添加列表
【发布时间】:2019-12-26 10:33:05
【问题描述】:

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

【问题讨论】:

    标签: arrays kotlin hashmap mutablelist


    【解决方案1】:

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

    theSteps += "list_1" to theSteps
    

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

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

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

    【讨论】:

      【解决方案2】:

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

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

      返回一个空的只读映射。

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

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

      然后你可以使用 plus 方法:

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

      或将other options 视为@voddan:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-11-13
        • 1970-01-01
        • 2016-01-01
        • 1970-01-01
        • 2021-10-31
        • 1970-01-01
        相关资源
        最近更新 更多