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

70次阅读
没有评论

共计 908 个字符,预计需要花费 3 分钟才能阅读完成。

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

丸趣 TV 网 – 提供最优质的资源集合!

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2024-02-27发表,共计908字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)