java中stream分组求和的方法是什么

   2024-11-04 7730
核心提示:在Java中,可以使用Stream API中的Collectors.groupingBy方法对数据流进行分组,然后结合Collectors.summingInt、Collectors.sum

在Java中,可以使用Stream API中的Collectors.groupingBy方法对数据流进行分组,然后结合Collectors.summingIntCollectors.summingLongCollectors.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}

 
举报打赏
 
更多>同类维修大全
推荐图文
推荐维修大全
点击排行

网站首页  |  关于我们  |  联系方式网站留言    |  赣ICP备2021007278号