Stream流分组求和
有这么个需求,要计算每个年龄的总分数:如果是用sql的话直接用sql执行,现在用代码执行:
我要求出每个部门的总分数
List<User> list = userService.getUser();Map<Integer, Double> expertsUserScore = list.parallelStream().collect(Collectors.groupingBy(User::getAge,Collectors.summingDouble(s -> s.getScore())));
运行结果如上
这里有个问题需要大家注意下:
如果某个人的分数为null,那么就有可能会出现空指针的情况:我们来演示下错误
那么怎么解决了:Stream流提供了一个方法:Optional.ofNullable().orElse()
说白了就是加了个判断如这个人分数为null,我就默认0.0,
优化之后的代码:
Map<Integer, Double> expertsUserScore = list.parallelStream().collect(
Collectors.groupingBy(User::getAge,
Collectors.summingDouble(s -> Optional.ofNullable(s.getScore()).orElse(0.0)))
);
我们来运行下:
Stream流分组求和相关推荐
- java steam 排序_java8 stream自定义分组求和并排序的实现
本文主要介绍了java8 stream自定义分组求和并排序的实现,分享给大家,具体如下: public static void main(String[] args) { List list = ne ...
- Stream流-分组操作
Stream流-分组操作 文章目录 Stream流-分组操作 方法1-- groupingBy(Function) 方法2-- groupingBy(Function,Collector) 方法3-- ...
- Java Stream流之求和
Java Stream流之求和 流方式实现 基本数据类型 和 包装类型 的一位数组求和 package top.yangbocsu;import java.util.Arrays;/*** @auth ...
- java的求和函数_Java Stream流之求和的实现
BigDecimal: BigDecimal bb =list.stream().map(Plan::getAmount).reduce(BigDecimal.ZERO,BigDecimal::add ...
- JAVA8新特性之Stream流分组
Apple apple01 = new Apple(1, "red", 100, "成都");Apple apple02 = new Apple(2, &quo ...
- 分别使用stream流求和流,递归,和循环求1-100的和
一.代码展示 /** Copyright (c) 2020, 2023, webrx.cn All rights reserved.**/import java.util.stream.IntStre ...
- Java 8中 直接通过List进行分组求和
// Java8 中 List.stream的分组求和方法Map<String, Long> map = list.stream().collect(Collectors.grouping ...
- stream流的应用与并行流
直接使用stream流 public class Stream {public static void main(String[] args) {//ArrayList<Object> a ...
- [Sream流] 初学者可以快速上手的stream流
目录 ✨前言: ✨引用: 获取对应数据的平方数,distinct 去重,也可以不去重 Collectors.toSet使用✨ Collectors.toList使用✨ map-->toUpper ...
最新文章
- graphql是什么_为什么GraphQL是避免技术债务的关键
- # 关闭 window10自带广告 microsoft star
- oracle执行长任务,oracle 里面定时执行任务设置
- 希捷推2TB 2.5英寸SSHD和5TB 2.5英寸机械硬盘
- 一次诡异的数据库死锁问题排查过程 1
- 基于约束的SQL攻击
- Microsoft Access、MySQL 以及 SQL Server 所使用的数据类型和范围。
- nssl1489-大冰隙2【树链剖分,线段树】
- jsp 上传转码_最完整的处理jsp处理乱码问题步骤,不需要手工转码
- SQL 必知必会·笔记14更新和删除数据
- java字符串转json_java 字符串转成 json 数组并且遍历
- 学习Java必须避开的十大致命雷区,新手入门千万不要踩!
- python必备基础代码-Python基础练习之用户登录实现代码分享
- Perl中的执行上下文
- Python 正则表达式大全
- 百度 95 后程序员删库跑路被判刑,动机为工作内容变动及对领导不满,删库会给互联网公司带来哪些影响?
- 小程序生成自带参数的小程序码
- 新浪微博开放平台开发
- 计算机无法读取移动光驱,电脑检测不到光驱怎么办?
- Pixhawk飞控代码(2019.11.28)