Java 如何对Scala中csv值列表中的值求和?

Java 如何对Scala中csv值列表中的值求和?,java,scala,Java,Scala,我有一个名称逗号分隔的名称-值对列表,其中有些重复: 10, test1 11, test2 12, test3 13, test1 14, test2 我想将重复的值(按降序)相加,使上述列表变为: 25, test2 23, test1 12, test3 在java中,我将创建一个新的列表并遍历现有列表。列表中的每个元素都将与其他元素进行比较,如果任何名称匹配,则将对值进行求和,一旦到达列表的末尾,则将此新元素添加到新列表中。如果没有匹配的元素(该元素是唯一的),则该元素将与其值一起添

我有一个名称逗号分隔的名称-值对列表,其中有些重复:

10, test1
11, test2
12, test3
13, test1
14, test2
我想将重复的值(按降序)相加,使上述列表变为:

25, test2
23, test1
12, test3
在java中,我将创建一个新的列表并遍历现有列表。列表中的每个元素都将与其他元素进行比较,如果任何名称匹配,则将对值进行求和,一旦到达列表的末尾,则将此新元素添加到新列表中。如果没有匹配的元素(该元素是唯一的),则该元素将与其值一起添加。一旦完成,我将使用某种比较器对列表进行排序

在Scala中是否有更实用的方法来实现这一点,可以使用filter方法?

您可以首先使用a将值收集到地图中,然后使用计算您需要的答案,在本例中,这只是求和

还要注意,这里团队名称是关键,总和是值,但这并不重要(?)

您可以首先使用a将值收集到地图中,然后使用计算您需要的答案,在本例中,这只是总和


还请注意,这里团队名称是关键,总和是值,但这并不重要(?)。

假设您已经用如下方式解析了CSV:

val data = List((10, "test1"), (11, "test1"), ...)
您现在可以执行以下操作:

data.groupBy(_._2).map {
  case (label, vals) => (vals.map(_._1).sum, label)
}.toList.sortBy(_._2)

这就完成了。

假设您已将CSV解析为以下内容:

val data = List((10, "test1"), (11, "test1"), ...)
您现在可以执行以下操作:

data.groupBy(_._2).map {
  case (label, vals) => (vals.map(_._1).sum, label)
}.toList.sortBy(_._2)
这就是全部