当前位置: 首页 > 知识库问答 >
问题:

Kotlin合并地图列表

宇文元明
2023-03-14

我想按id分组。

[
    {
        "id": 1,
        "name": "a"
    },
    {
        "id": 2,
        "name": "b"
    },
    {
        "id": 3,
        "name": "c"
    }
]

结果应如下所示:

{
    "1": "a",
    "2": "b",
    "3": "c"
}

静态编程语言中最惯用的方法是什么?

共有1个答案

公冶兴文
2023-03-14

你的问题只显示了JSON,所以我不确定这是关于JSON序列化还是Kotlin。由于它被标记为kotlin,我假设您已经用类似的方法将初始列表反序列化到kotlin

data class NamedThing(val id: Int, val name: String)

val list: List<NamedThing> = TODO("somehow you're getting a list of those here")

如果您已经拥有此功能,则可以使用以下方法从该列表轻松创建地图:

val map = list.associate { it.id to it.name }
 类似资料:
  • 我试图使用

  • 问题内容: 我想将地图转换为: 至 结果列表是所有列表值的合并。 问题答案: 你可以有 这将检索映射的值,然后将每个列表平面映射到由其元素形成的Stream中,并将结果收集到列表中。 另一种选择是,不对每个列表进行平面映射,从而可能会提高性能,而无需对每个列表进行平面映射,则可以通过调用每个累加的结果来直接收集(由返回)。

  • 问题内容: 我有两个键为s且值为的映射。给定两个s,合并它们的最简单方法是什么,如果两个键相同,则值是两个集合的并集。您可以假设值永远不会为null,并且如果有用的话,我们可以将它们设为s。 问题答案: 我们在谈论实例。在这种情况下,查找值为O(1),因此您只需获取一个映射,然后对该映射的条目进行迭代,看看另一个映射是否包含该键。如果没有,只需添加设置。如果包含密钥,则将两个集合并集(通过将一个集

  • 问题内容: 我想将两个Map与JAVA 8 Stream合并: 我尝试使用此实现: 但是,此实现只会产生如下结果: 如果中没有包含一个键,则会将其作为新键添加到相应的String列表中。如果键在和中重复,则两个值列表将被合并为:,然后是。 问题答案: 您可以通过遍历中的所有条目并将它们合并到中来实现此目的。 下面通过调用操作消耗每个条目的键和值的位置来遍历的条目。对于每个条目,我们叫上:这将要么创

  • 操作步骤: ①在"图层管理"模块,选择图层,点击"更多"按钮。 ②点击"复制数据密钥"按钮。 ③弹出"复制数据密钥窗口",点击"复制"按钮。 ④进入想要合并的地图,点击地图右上工具条上的"数据密钥"按钮。 ⑤弹出"导入数据密钥窗口",粘贴刚才复制的密钥,点击"导入"按钮,数据在地图导入成功。 提示: ●复制图层数据参考复制拷贝图层 操作动图: [查看原图]

  • 我在数据帧中有两个映射类型列。有没有一种方法可以通过使用.withColumn在spark Sql中合并这两个列来创建新的映射列?