stream reduce返回计算流的聚合结果,平均、最大、小值,求和。

测试类:

import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Comparator;
import java.util.List;
import java.util.stream.Collectors;public class JDK8Test {public static void test() {List<Book> bookList = new ArrayList<>();bookList.add(new Book("alice", "alice", new BigDecimal(20), 1));bookList.add(new Book("cindy", "alice", new BigDecimal(40), 2));bookList.add(new Book("blair", "blair", new BigDecimal(30), 3));System.out.println(bookList);// 根据名称排序List<Book> sortedBookList = bookList.stream().sorted(Comparator.comparing(Book::getName)).collect(Collectors.toList());System.out.println(sortedBookList);// 通过map()方法获得price列表List<BigDecimal> priceList = bookList.stream().map(Book::getPrice).collect(Collectors.toList());System.out.println(priceList);// 统计author,去重List<String> nameList = bookList.stream().map(Book::getAuthor).distinct().collect(Collectors.toList());System.out.println(nameList);// 提取部分数据List<Book> alicesBooks= bookList.stream().filter(book->{return "alice".equals(book.getAuthor());}).collect(Collectors.toList());System.out.println(alicesBooks);// 通过reduce聚合求和BigDecimal priceSum = bookList.stream().map(Book::getPrice).reduce((x,y)->x.add(y)).get();System.out.println(priceSum);// 平均排名double averageRank = bookList.parallelStream().mapToInt(Book::getRank).average().getAsDouble();System.out.println(averageRank);}public static void main(String[] args) {test();}}

Book类:

@Data
@AllArgsConstructor
public class Book {private String name;private String author;private BigDecimal price;private int rank;
}
 
 

JDK8 Stream 操作相关推荐

  1. JDK8 Stream操作 collectingAndThen:根据对象的属性去重

    来源:blog.csdn.net/qq_35634181/article/details/108867857 ExportTemperatureDto实体对象: @Getter @Setter @To ...

  2. JDK8 Stream操作整理

    1,forEach this.quoteItemList.forEach(p -> p.setMode(mode)); 2,获取对话属性,去重后生成集合 List<String> p ...

  3. JDK8的Stream操作你还不会用吗?

    Stream介绍 Stream 使用一种类似用 SQL 语句从数据库查询数据的直观方式来提供一种对 Java 集合运算和表达的高阶抽象.Stream API可以极大提高Java程序员的生产力,让程序员 ...

  4. JDK8 Stream 效率如何?

    点击上方 好好学java ,选择 星标 公众号重磅资讯,干货,第一时间送达今日推荐:推荐19个github超牛逼项目!个人原创100W +访问量博客:点击前往,查看更多 作者:Al_assad 链接: ...

  5. JDK8 stream API,并行API的适用场合

    jdk8stream创建/中间操作/终止操作api public static void main(String[] args) {//流的创建:可以通过Array/List/Set的stream() ...

  6. jdk8 stream

    JDK8 Stream详解 概念 Stream是Java8 API的新成员,它允许以声明性方式处理数据集合 . 特点 (1)代码简洁:函数式编程写出的代码简洁且意图明确,使用stream接口让你从此告 ...

  7. java8中 lambda表达式,stream操作

    什么是lambda表达式 概念:Lambda 表达式(lambda expression)是一个匿名函数,Lambda表达式基于数学中的λ演算得名,直接对应于其中的lambda抽象(lambda ab ...

  8. JDK8 Stream 数据流效率分析

    JDK8 Stream 数据流效率分析 Stream 是Java SE 8类库中新增的关键抽象,它被定义于 java.util.stream (这个包里有若干流类型: Stream<T> ...

  9. 1.14 Stream操作Collection集合

    使用Java 8新增的Stream操作Collection集合 Java 8 还新增了 Stream.IntStream.LongStream.DoubleStream 等流式 API,这些 API ...

最新文章

  1. 开箱即用 - jwt 无状态分布式授权
  2. 【DP】楼梯(jzoj 1520)
  3. python字符串常用函数-大小写,删除空格,字符串切片
  4. tensorflow2.1学习--常用函数三
  5. Java求解迷宫问题:栈与回溯算法
  6. 分支程序设计03 - 零基础入门学习C语言12
  7. Quartz开发-插件开发
  8. 长安大学微型计算机原理与接口技术答案,长安大学微机原理与接口技术AB卷试题与答案.doc...
  9. win10运行安装软件程序提示“为了对电脑进行保护,已经阻止此应用” 有效解决方法记录
  10. java中CAE画实心圆的参数_java绘图中RenderingHints 参数
  11. 快速理解 IdentityServer4 中的认证 授权
  12. 华三模拟器配置IS-IS
  13. Mac安装激活 MATLAB R2018a
  14. 小程序毕设作品之微信评选投票小程序毕业设计(1)开发概要
  15. python控制多个屏幕_多设备控制 + 屏幕操作录制重放 实现完整多设备测试流程...
  16. 全数字实时仿真平台SkyEye经典案例——卫星
  17. 【R图秀-3】——“全球和平指数”可视化
  18. 利用python画钻石_用Python制作钻石ASCII艺术品
  19. linux下载edk2链接文件
  20. 《无处不在的安全,无孔不入的间谍》论企业信息泄漏防御

热门文章

  1. 关键字Restrict
  2. java决策树算法_「Smile」一下,轻松用Java玩转机器学习
  3. 服务器操作系统类型怎么查,服务器查看操作系统类型
  4. in use 大学英语4word_考研英语真题干货 | run on
  5. Unreal Engine 4添加自定义Settings到项目设置
  6. docker swarm
  7. WPF特效-粒子动画
  8. 期权、RSU的区别与行权事宜
  9. JavaScript--函数
  10. python-json操作