有这么个需求,要计算每个年龄的总分数:如果是用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流分组求和相关推荐

  1. java steam 排序_java8 stream自定义分组求和并排序的实现

    本文主要介绍了java8 stream自定义分组求和并排序的实现,分享给大家,具体如下: public static void main(String[] args) { List list = ne ...

  2. Stream流-分组操作

    Stream流-分组操作 文章目录 Stream流-分组操作 方法1-- groupingBy(Function) 方法2-- groupingBy(Function,Collector) 方法3-- ...

  3. Java Stream流之求和

    Java Stream流之求和 流方式实现 基本数据类型 和 包装类型 的一位数组求和 package top.yangbocsu;import java.util.Arrays;/*** @auth ...

  4. java的求和函数_Java Stream流之求和的实现

    BigDecimal: BigDecimal bb =list.stream().map(Plan::getAmount).reduce(BigDecimal.ZERO,BigDecimal::add ...

  5. JAVA8新特性之Stream流分组

    Apple apple01 = new Apple(1, "red", 100, "成都");Apple apple02 = new Apple(2, &quo ...

  6. 分别使用stream流求和流,递归,和循环求1-100的和

    一.代码展示 /** Copyright (c) 2020, 2023, webrx.cn All rights reserved.**/import java.util.stream.IntStre ...

  7. Java 8中 直接通过List进行分组求和

    // Java8 中 List.stream的分组求和方法Map<String, Long> map = list.stream().collect(Collectors.grouping ...

  8. stream流的应用与并行流

    直接使用stream流 public class Stream {public static void main(String[] args) {//ArrayList<Object> a ...

  9. [Sream流] 初学者可以快速上手的stream流

    目录 ✨前言: ✨引用: 获取对应数据的平方数,distinct 去重,也可以不去重 Collectors.toSet使用✨ Collectors.toList使用✨ map-->toUpper ...

最新文章

  1. graphql是什么_为什么GraphQL是避免技术债务的关键
  2. # 关闭 window10自带广告 microsoft star
  3. oracle执行长任务,oracle 里面定时执行任务设置
  4. 希捷推2TB 2.5英寸SSHD和5TB 2.5英寸机械硬盘
  5. 一次诡异的数据库死锁问题排查过程 1
  6. 基于约束的SQL攻击
  7. Microsoft Access、MySQL 以及 SQL Server 所使用的数据类型和范围。
  8. nssl1489-大冰隙2【树链剖分,线段树】
  9. jsp 上传转码_最完整的处理jsp处理乱码问题步骤,不需要手工转码
  10. SQL 必知必会·笔记14更新和删除数据
  11. java字符串转json_java 字符串转成 json 数组并且遍历
  12. 学习Java必须避开的十大致命雷区,新手入门千万不要踩!
  13. python必备基础代码-Python基础练习之用户登录实现代码分享
  14. Perl中的执行上下文
  15. Python 正则表达式大全
  16. 百度 95 后程序员删库跑路被判刑,动机为工作内容变动及对领导不满,删库会给互联网公司带来哪些影响?
  17. 小程序生成自带参数的小程序码
  18. 新浪微博开放平台开发
  19. 计算机无法读取移动光驱,电脑检测不到光驱怎么办?
  20. Pixhawk飞控代码(2019.11.28)

热门文章

  1. 【干货】新显卡太贵,便宜老卡怎么选?二手亮机卡过渡指南!
  2. 每日单词20110602
  3. Javaweb二手交易平台(完整版)
  4. 详解DNS服务、DNS解析、DNS劫持和污染
  5. 火狐浏览器必备的一些Hack插件
  6. 博弈论一 [ 巴什博奕 ]
  7. Excel中反转一列数据的几种方法
  8. 深信服2018春季招聘-研发卷编程题 - 题解
  9. 宾馆如何锁定计算机,酒店密码锁怎么反锁 公寓酒店密码门锁使用操作说明
  10. 《暗黑》同名小说——再也回不去(连载1)