scala sum按键功能

时间:2015-03-26 19:07:51

标签: scala

给定一个数组如下:

val stats: Array[(Int, (Double, Int))]=Array((4,(2,5)),  (4,(8,4)),  (7,(10,0)),  (1,(1,3)), (4,(7,9)))

如何按键分组,得到第1对元素的总和! 例如,对于键值 4 ,我要将这些值相加 2.0 + 8.0 + 7.0

result = Array((4, 17.0), (7, 10.0), (1, 1.0))

我开始这样做,但我不知道如何继续:

stats.groupBy(_._1) mapValues (_.map(_._2)) //....

感谢您的帮助!

1 个答案:

答案 0 :(得分:4)

这就是你要找的东西:

stats.groupBy(_._1).mapValues(_.map(_._2._1).sum).toArray
//  Array((4,17.0), (7,10.0), (1,1.0))

您非常接近,只需抓取._2._1 b (a,(b,c))对象中的{{1}}即可。然后你可以将这些值加起来。