JDK8 Stream 操作
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 操作相关推荐
- JDK8 Stream操作 collectingAndThen:根据对象的属性去重
来源:blog.csdn.net/qq_35634181/article/details/108867857 ExportTemperatureDto实体对象: @Getter @Setter @To ...
- JDK8 Stream操作整理
1,forEach this.quoteItemList.forEach(p -> p.setMode(mode)); 2,获取对话属性,去重后生成集合 List<String> p ...
- JDK8的Stream操作你还不会用吗?
Stream介绍 Stream 使用一种类似用 SQL 语句从数据库查询数据的直观方式来提供一种对 Java 集合运算和表达的高阶抽象.Stream API可以极大提高Java程序员的生产力,让程序员 ...
- JDK8 Stream 效率如何?
点击上方 好好学java ,选择 星标 公众号重磅资讯,干货,第一时间送达今日推荐:推荐19个github超牛逼项目!个人原创100W +访问量博客:点击前往,查看更多 作者:Al_assad 链接: ...
- JDK8 stream API,并行API的适用场合
jdk8stream创建/中间操作/终止操作api public static void main(String[] args) {//流的创建:可以通过Array/List/Set的stream() ...
- jdk8 stream
JDK8 Stream详解 概念 Stream是Java8 API的新成员,它允许以声明性方式处理数据集合 . 特点 (1)代码简洁:函数式编程写出的代码简洁且意图明确,使用stream接口让你从此告 ...
- java8中 lambda表达式,stream操作
什么是lambda表达式 概念:Lambda 表达式(lambda expression)是一个匿名函数,Lambda表达式基于数学中的λ演算得名,直接对应于其中的lambda抽象(lambda ab ...
- JDK8 Stream 数据流效率分析
JDK8 Stream 数据流效率分析 Stream 是Java SE 8类库中新增的关键抽象,它被定义于 java.util.stream (这个包里有若干流类型: Stream<T> ...
- 1.14 Stream操作Collection集合
使用Java 8新增的Stream操作Collection集合 Java 8 还新增了 Stream.IntStream.LongStream.DoubleStream 等流式 API,这些 API ...
最新文章
- 开箱即用 - jwt 无状态分布式授权
- 【DP】楼梯(jzoj 1520)
- python字符串常用函数-大小写,删除空格,字符串切片
- tensorflow2.1学习--常用函数三
- Java求解迷宫问题:栈与回溯算法
- 分支程序设计03 - 零基础入门学习C语言12
- Quartz开发-插件开发
- 长安大学微型计算机原理与接口技术答案,长安大学微机原理与接口技术AB卷试题与答案.doc...
- win10运行安装软件程序提示“为了对电脑进行保护,已经阻止此应用” 有效解决方法记录
- java中CAE画实心圆的参数_java绘图中RenderingHints 参数
- 快速理解 IdentityServer4 中的认证 授权
- 华三模拟器配置IS-IS
- Mac安装激活 MATLAB R2018a
- 小程序毕设作品之微信评选投票小程序毕业设计(1)开发概要
- python控制多个屏幕_多设备控制 + 屏幕操作录制重放 实现完整多设备测试流程...
- 全数字实时仿真平台SkyEye经典案例——卫星
- 【R图秀-3】——“全球和平指数”可视化
- 利用python画钻石_用Python制作钻石ASCII艺术品
- linux下载edk2链接文件
- 《无处不在的安全,无孔不入的间谍》论企业信息泄漏防御