在Java中,可以使用Stream API中的Collectors.groupingBy
方法对数据流进行分组,然后结合Collectors.summingInt
、Collectors.summingLong
或Collectors.summingDouble
方法来对分组后的数据进行求和操作。
下面是一个示例代码,演示如何对一个包含多个对象的数据流按照某个属性进行分组,并对每个分组进行求和操作:
import java.util.Arrays;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
class Item {
String category;
int amount;
public Item(String category, int amount) {
this.category = category;
this.amount = amount;
}
public String getCategory() {
return category;
}
public int getAmount() {
return amount;
}
}
public class Main {
public static void main(String[] args) {
List<Item> items = Arrays.asList(
new Item("A", 10),
new Item("B", 20),
new Item("A", 30),
new Item("B", 40),
new Item("A", 50)
);
// 按照 category 分组,并对每个分组的 amount 求和
Map<String, Integer> sumByCategory = items.stream()
.collect(Collectors.groupingBy(Item::getCategory, Collectors.summingInt(Item::getAmount)));
System.out.println(sumByCategory);
}
}
以上代码将输出一个包含不同category的总和的Map:
{A=90, B=60}
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,请发送邮件至 55@qq.com 举报,一经查实,本站将立刻删除。转转请注明出处:https://www.szhjjp.com/n/883886.html