【发布时间】:2014-03-06 21:40:21
【问题描述】:
我有一个清单
val data = List(2, 4, 3, 2, 1, 1, 1,7)
我想用它创建一个映射,使得上面列表中的值是新的键,我尝试过的新值是 indeces
scala> data.zipWithIndex.toMap
res5: scala.collection.immutable.Map[Int,Int] = Map(1 -> 6, 2 -> 3, 7 -> 7, 3 -> 2, 4 -> 1)
但奇怪的是它给出 res5(1) 为 6,但我希望它为 4。
我可以解决它
data.zipWithIndex groupBy (_._1) mapValues (w=>w.map(tuple=>tuple._2) min)
但是有什么方法可以将函数 f 传递给 toMap 以便它以所需的方式创建地图。
【问题讨论】:
-
也许
MultiMap会满足您的需求?
标签: scala functional-programming scala-2.8