gpt4 book ai didi

Java 8 List> 对象中的分组和求和

转载 作者:行者123 更新时间:2023-12-02 01:01:44 24 4
gpt4 key购买 nike

我有一个List<List<String>>包含要以 csv 格式输出的表值。

id|name|rank|count
1|aaa|A1|2
2|aaa|A0|1
3|bbb|A2|5
4|bbb|A1|3
5|ccc|A|2

我想按列表中的第二个元素(上例中的名称)进行分组并对计数字段求和。预期输出如下。

name|count
aaa|3
bbb|8
ccc|2

在 Java 8 中实现这一目标的最佳方法是什么?请指教。

最佳答案

这是您的要求:

String[] lines = {
"1|aaa|A1|2",
"2|aaa|A0|1",
"3|bbb|A2|5",
"4|bbb|A1|3",
"5|ccc|A|2"
};
List<List<String>> data = Stream.of(lines)
.map(e -> Arrays.asList(e.split("\\|")))
.collect(Collectors.toList());
Map<String, Integer> result = data.stream()
.collect(Collectors.toMap(e -> e.get(1),
e -> Integer.valueOf(e.get(3)),
Integer::sum)
);
System.out.println(result);

但如果将 csv 解析为 Pojo 对象会更好。

关于Java 8 List<List<String>> 对象中的分组和求和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60559989/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com