【问题标题】:Scala: How to filter out maps with a common key value from a list of mapsScala:如何从地图列表中过滤出具有公共键值的地图
【发布时间】:2017-04-21 07:00:12
【问题描述】:

我有一个地图列表:

val input = List( Map("id" -> "abc", "val" -> 100), 
                  Map("id" -> "abc", "val" -> 109), 
                  Map("id" -> "bca", "val" -> 115), 
                  Map("id" -> "acb", "val" -> 100), 
                  Map("id" -> "cba", "val" -> 105),
                  Map("id" -> "cba", "val" -> 110), 
                  Map("id" -> "cba", "val" -> 116) )

我需要从中过滤掉所有共享键“id”的公共值的映射。换句话说,我必须只保留 key id 的值是唯一的映射。

val output = List( Map("id" -> "bca", "val" -> 115), 
                   Map("id" -> "acb", "val" -> 100) )

【问题讨论】:

    标签: scala list dictionary filter


    【解决方案1】:

    使用分组

    input.groupBy(x => x("id")).filter(y => y._2.size == 1).map(_._2)

    【讨论】:

    • 非常感谢,使用 flatMap 而不是地图,它提供了我想要的。
    猜你喜欢
    • 1970-01-01
    • 2018-08-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-03-24
    • 1970-01-01
    • 1970-01-01
    • 2021-05-03
    相关资源
    最近更新 更多