pat*_*rit 3 scala scala-collections
什么是从反转最短/惯用的方式Map[K, V],以Map[V, Iterable[K]]在Scala呢?
使用mapValues可以简化Marius的解决方案,
m.groupBy(_._2).mapValues(_.map(_._1))
Run Code Online (Sandbox Code Playgroud)
示例REPL会话,
scala> val m = Map(1 -> "foo", 2 -> "foo", 3 -> "bar", 4 -> "bar", 5 -> "baz")
m: Map[Int,String] = Map(5 -> baz, 1 -> foo, 2 -> foo, 3 -> bar, 4 -> bar)
scala> m.groupBy(_._2).mapValues(_.map(_._1))
res0: Map[String, Iterable[Int]] = Map(baz -> List(5), foo -> List(1, 2), bar -> List(3, 4))
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1390 次 |
| 最近记录: |