【stream】List根据某个字段求和

简介: 【stream】List根据某个字段求和

经常会遇到需要集合某个字段求和的场景,stream为此提供了遍历的方法

// list 为 List 类型

List voList = workloadOccupied.stream().map(BigDecimal::new).collect(Collectors.toList());

BigDecimal sum=voList.stream().reduce(BigDecimal.valueOf(0),BigDecimal::add);

Integer

int ageSum = preSalesTaskVos.stream().collect(Collectors.summingInt(PreSalesTaskVo::getPlanWorkTime));

int ageSum = preSalesTaskVos.stream().mapToInt().sum(PreSalesTaskVo::getPlanWorkTime);

BigDecimal

 preSalesTaskVos=preSalesTaskVos.stream().filter(e->e.getPlanWorkTime()!=null).collect(Collectors.toList());
        BigDecimal planTotalWorkTime = preSalesTaskVos.stream()
                // 将user对象的age取出来map为Bigdecimal
                .map(PreSalesTaskVo::getPlanWorkTime)
                // 使用reduce()聚合函数,实现累加器
                .reduce(BigDecimal.ZERO,BigDecimal::add);

求和

BigDecimal result2 = userList.stream()
                // 将user对象的age取出来map为Bigdecimal
                .map(User::getAge)
                // 使用reduce()聚合函数,实现累加器
                .reduce(BigDecimal.ZERO,BigDecimal::add);

过滤null

BigDecimal result2 = userList.stream()
        .filter(e->e.getAge()!=null)
                // 将user对象的age取出来map为Bigdecimal
                .map(User::getAge)
                // 使用reduce()聚合函数,实现累加器
                .reduce(BigDecimal.ZERO,BigDecimal::add);


目录
相关文章
|
8月前
|
Java
【Java基础】Java8 使用 stream().sorted()对List集合进行排序
【Java基础】Java8 使用 stream().sorted()对List集合进行排序
245 0
|
1月前
|
消息中间件 NoSQL Java
别再用 Redis List 实现消息队列了,Stream 专为队列而生
别再用 Redis List 实现消息队列了,Stream 专为队列而生
99 0
|
1月前
|
数据处理
利用Stream流将取到的对象List<对象>形式数据进行分组统计转变成Map<分组条件,数量统计>形式
利用Stream流将取到的对象List<对象>形式数据进行分组统计转变成Map<分组条件,数量统计>形式
31 0
|
1天前
|
消息中间件 负载均衡 NoSQL
Redis系列学习文章分享---第七篇(Redis快速入门之消息队列--List实现消息队列 Pubsub实现消息队列 stream的单消费模式 stream的消费者组模式 基于stream消息队列)
Redis系列学习文章分享---第七篇(Redis快速入门之消息队列--List实现消息队列 Pubsub实现消息队列 stream的单消费模式 stream的消费者组模式 基于stream消息队列)
4 0
|
26天前
|
BI
Power BI获取SharePoint List列表后,如何展开List/Table中的字段,以及使用逗号拼接为一个字符串
在Power BI中,从SharePoint List获取数据时遇到Table和List混合的数据源,直接展开会导致“笛卡尔积”效应,生成过多行。目标是保持行数不变,将Table中的字段与List值用逗号分隔显示在同一行。解决方法包括:1) 添加新列,从Table中提取List的Column2值;2) 使用Text.Combine函数合并List中的值。具体操作步骤包括选择列并自定义新列,然后展开List并以逗号分隔。通过这些步骤,可以将Table转换为所需的字符串格式。完整的Power BI Query代码展示了这一过程。参考链接提供了更多详情。
|
5天前
|
Java
java操作list使用Stream
java操作list使用Stream
6 0
|
1月前
list如何将自己实体的字段值赋给另外一个List实体中的相同字段
list如何将自己实体的字段值赋给另外一个List实体中的相同字段
14 0
|
1月前
|
Java API
java 对象list 使用stream进行过滤
在Java中,你可以使用Stream API对对象列表进行过滤。假设你有一个`List<MyObject>`,并且你想根据某些条件过滤出特定的对象。以下是一个示例: ```java import java.util.List; import java.util.stream.Collectors; public class Main { public static void main(String[] args) { List<MyObject> myObjects = ... // 初始化你的对象列表 List<MyObject> filter
如何使用Stream流将List转换为Map
如何使用Stream流将List转换为Map
|
1月前
|
存储 Java API
利用Stream流将取到的对象List<对象>形式数据进行分组统计转变成Map<分组条件,数量统计>形式
利用Stream流将取到的对象List<对象>形式数据进行分组统计转变成Map<分组条件,数量统计>形式
41 0