下面的代码假设对一个元组列表的值求和,但是当两个或多个元组包含相同的值时,元组只输出一次:
var data = List((1, "1") , (1, "one")) //> data : List[(Int, java.lang.String)] = List((1,1), (1,one))
data = data.groupBy(_._2).map {
case (label, vals) => (vals.map(_._1).sum, label)
}.toList.sortBy(_._1).reverse
println(data) //> List((1,1))
上面的输出是List((1,1))
我期待的List((1,1) , (1,"one"))
是否需要调整 groupBy 函数参数来解决这个问题?