首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在Kotlin中添加新元素到map?

如何在Kotlin中添加新元素到map?
EN

Stack Overflow用户
提问于 2021-05-02 23:44:57
回答 1查看 77关注 0票数 0

如何添加具有相同第一个键的元素来映射和保存其中的每个元素?

“”“

代码语言:javascript
运行
复制
        var records = mutableMapOf<Int, Map<Int, List<String>>>()
        records.put(1, mutableMapOf(Pair(2, listOf<String>("first"))))
        records.put(1, mutableMapOf(Pair(3, listOf<String>("second"))))

“”“

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-05-03 00:04:42

映射的每个键只能有一个值,如果你用已经存在的键添加另一个条目,它将覆盖它。您需要一个值类型,它是一个可以放入多个内容的集合(如ListSet)。

假设您想要使用Int键来存储Pair<Int, String>类型的项,那么您将需要一个MutableMap<Int, MutableList<Pair<Int, String>>> (或Set,您不会得到重复项,而且它通常是无序的)。

您需要为一个键对集合执行get操作,然后添加到该集合中(或者您正在做的任何操作):

代码语言:javascript
运行
复制
var records = mutableMapOf<Int, MutableList<Pair<Int, String>>>()
// this creates a new empty list if one doesn't exist for this key yet
records.getOrPut(1) { mutableListOf() }.add(Pair(2, "first"))
records.getOrPut(1) { mutableListOf() }.add(3 to "second") // another way to make a Pair
println(records)

>> {1=[(2, first), (3, second)]}

https://pl.kotl.in/AlrSG0KH-

这有点冗长,所以您可能想做一些很好的addRecord(key, value)等函数,以便更容易地访问这些内部列表

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67358253

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档