scala - scala 中映射的按键聚合/归约函数

标签 scala dictionary hashmap

我有一个 scala 中的 map ,如下所示。

Map("x"-> "abc", "y"->"adc","z"->"abc", "l"-> "ert","h"->"dfg", "p"-> "adc")

我想要的输出如下:

Map("abc"->["x","z"],"adc"->["y" , "p"], "ert"->"l", "dfg"->"h")

因此,输出将数组作为那些在初始映射中具有相同值的键的值。我怎样才能以最佳方式完成这项工作?

最佳答案

groupBy 后跟对其输出的值进行一些操作。

scala> m.groupBy(x => x._2).mapValues(_.keys.toList)
res10: scala.collection.immutable.Map[String,List[String]]
  = Map(abc -> List(x, z), dfg -> List(h), ert -> List(l), adc -> List(y, p))

关于scala - scala 中映射的按键聚合/归约函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41757513/

相关文章:

scala - 实现支持方法链的Scala特性的最佳实践

python - 我的程序没有产生输出,这是为什么?

javascript - 在javascript中访问Java Map的键值对

c++ - 通过 map C++

scala - 如何在模式匹配中的案例之间共享逻辑

mysql - MySQL 的 H2 中的 DATE_SUB 和 DATE_ADD

java - 如何从 HashMap 返回键值列表

java - 如何通过 Hashmap<int<arraylist>> 分配比预期更多的值来修复循环

sql - 如何在Spark中有条件地联接两个DataFrame并替换一列

java - 我如何将 bytearray 存储为 HashMap 中的值?