Scala:更好的分组方法

Scala:更好的分组方法,scala,functional-programming,Scala,Functional Programming,给定一个数组,其中包含(键,(索引,评级))形式的条目,例如: val samp = Array((0, (1, 0.005)), (1, (1, 0.306)), (0, (0, 0.231)), (2, (2, 0.908)), (0, (2, 0.542)), (2, (1, 0.091))) 我想把它转换成 Array((key1, Array((index1, rating1), (index2, rating2), ...), (key2, Array((index1, ratin

给定一个数组,其中包含
(键,(索引,评级))
形式的条目,例如:

val samp = Array((0, (1, 0.005)), (1, (1, 0.306)), (0, (0, 0.231)), (2, (2, 0.908)), (0, (2, 0.542)), (2, (1, 0.091)))
我想把它转换成

Array((key1, Array((index1, rating1), (index2, rating2), ...), (key2, Array((index1, rating1), (index2, rating2), ...)), ...)
为了得到这个结果,我执行了以下代码:

samp.groupBy(_._1).map{ case (k, v) => (k, v.map(_._2)) }.toArray
这给了我:

Array((2,Array((2,0.908), (1,0.091))), (1,Array((1,0.306))), (0,Array((1,0.005), (0,0.231), (2,0.542))))
代码给出了我想要的,但我只是想知道是否有更好的方法来实现这一点,因为我是scala的新手。谢谢

也许只需要使用:

也许只需要使用:

samp.groupBy(_._1).mapValues(_.map(_._2)).toArray