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

avatar
作者
猴君
阅读量:2

在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} 

广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!