Scala:如何使用地图列表中的公共键值过滤掉地图

dav*_*vid 0 dictionary scala list filter

我有一张地图清单:

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) )
Run Code Online (Sandbox Code Playgroud)

我需要从中过滤出所有共享密钥"id"的公共值的地图.换句话说,我必须只保留key id的值唯一的映射.

val output = List( Map("id" -> "bca", "val" -> 115), 
                   Map("id" -> "acb", "val" -> 100) )
Run Code Online (Sandbox Code Playgroud)

vvg*_*vvg 8

使用分组

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