【问题标题】:Aggregate/Reduce by key function for a map in scalascala中地图的按键功能聚合/减少
【发布时间】:2017-06-05 01:55:24
【问题描述】:

我在 scala 中有一张如下所示的地图。

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

我希望输出如下:

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

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

【问题讨论】:

标签: scala dictionary hashmap


【解决方案1】:

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))

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-08-11
    • 2019-07-31
    • 1970-01-01
    • 1970-01-01
    • 2020-11-01
    相关资源
    最近更新 更多