jdk8 StreamApi
List<User> userList=new ArrayList<>();
userList.add(User.builder().age().name("zhang").amount(BigDecimal.valueOf()).build());
userList.add(User.builder().age().name("wang").amount(BigDecimal.valueOf()).build());
userList.add(User.builder().age().name("li").amount(BigDecimal.valueOf()).build());
userList.add(User.builder().age().name("zhao").amount(BigDecimal.valueOf()).build());
userList.add(User.builder().age().name("sun").amount(BigDecimal.valueOf()).build());
userList.add(User.builder().age().name("sun").amount(BigDecimal.valueOf()).build()); log.info("所有人的年龄 求和={}",userList.stream().map(User::getAge).reduce((a,b)->a+b).get()); log.info("最大值={}",userList.stream().max(Comparator.comparing(User::getAge)));
log.info("总金额={}",userList.stream().map(User::getAmount).reduce(BigDecimal::add).get()); long count=userList.stream().distinct().count();
log.info("去重前={},去重后={}",userList.size(),count); // list 中所有的元素都满足条件 才为true
log.info("完全匹配={}",userList.stream().allMatch(a -> a.getAge()== || a.getAge()==
||a.getAge()== || a.getAge()== ||a.getAge()== )); // list 中任意一个元素满足条件 就为true
log.info("任意匹配={}",userList.stream().anyMatch(a -> a.getAge()==)); log.info("过滤={}",userList.stream().filter(a -> a.getAmount().compareTo(BigDecimal.valueOf())>).collect(Collectors.toList())); // 我执行了5次,都获取第一个元素
log.info("任意获取元素 ={}",userList.stream().findAny().get()); log.info("获取收割元素 ={}",userList.stream().findFirst().get()); // 取出 list 中的list,Map<String,List> 一样
List<List<User>>userList1 = new ArrayList<>();
userList1.add(userList);
List<User>l=userList1.stream().flatMap(list -> list.stream()).collect(Collectors.toList());
log.info("flatMap ={}",l); // 截取前指定几个元素
log.info("limit={}",userList.stream().limit().collect(Collectors.toList())); // 取出list中的int 属性,对属性进行 计算(平均值,求和,最大,最小 等 和其他计算)
log.info("mapToInt={}",userList.stream().mapToInt(a -> a.getAge()).sum()); log.info("剔除第几个元素={}",userList.stream().skip().collect(Collectors.toList())); log.info("正序排序={}",userList.stream().sorted(Comparator.comparingInt(User::getAge)).collect(Collectors.toList()));
log.info("倒序排序={}",userList.stream().sorted(Comparator.comparingInt(User::getAge).reversed()).collect(Collectors.toList()));
jdk8 StreamApi的更多相关文章
- jdk8中的StreamAPI
1.实体类 package com.zy.model; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.D ...
- JDK7和JDK8一些重要新特性
jdk7新特性(部分) switch支持字符串 List AutoCloseable接口实现自动关闭,在try()中 新增获取环境信息的工具方法,getJavaHomeDir,getUserHomeD ...
- android开发环境搭建(ubuntu15.04+jdk8+eclipse+android sdk)
开始学习android开发,首先对其环境对搭建比较重要.平台可以选择window/linux/mac等,这里,我选择ubuntu系统,方法比较原始,当然也可以直接用google提供的android s ...
- win7 安装JDK7和JDK8后,卸载JDK8后出错
这是本人学习Java过程中遇到的一些问题和解决方法,在此记录,方便本人查看,解决他人疑惑. 本人win7 x64旗舰版,同时安装了JDK7和JDK8,卸载了JDK8之后,cmd命令行输入:java - ...
- JDK8+Dubbo2.5.2实践
几年前就听说过Dubbo的大名,今天由于工作需要,研究一下. 从网上找了一篇文章,非常靠谱,并且提供了简单的示例代码,基本上可以跑起来. 文章地址: http://www.cnblogs.com/Ja ...
- xp下安装jdk8
下载jdk8安装包,地址:http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html下载7- ...
- Linux Mint安装jdk8
想到研究Java,可能学习openjdk是比较好的方式,于是去找openjdk.对于Debian based系统的安装指南是: -jdk 然而我的Linux Mint 17却无法安装.搜索之后发现如下 ...
- jdk8 Lambda表达式与匿名内部类比较
Labmda表达式与匿名内部类 前言 Java Labmda表达式的一个重要用法是简化某些匿名内部类(Anonymous Classes)的写法.实际上Lambda表达式并不仅仅是匿名内部类的语法糖, ...
- JDK8 的 Lambda 表达式原理
JDK8 使用一行 Lambda 表达式可以代替先前用匿名类五六行代码所做的事情,那么它是怎么实现的呢?从所周知,匿名类会在编译的时候生成与宿主类带上 $1, $2 的类文件,如写在 TestLamb ...
随机推荐
- Spring Dataflow批处理框架在OCP上的部署
详细参考 https://donovanmuller.blog/spring-cloud-dataflow-server-openshift/docs/1.2.1.RELEASE/reference/ ...
- Endnote在latex中的应用的两种方法
从endnote中向latex文档批量插入参考文献的两种方法 一.若是latex模板中参考文献编写的命令是: \begin{thebibliography} \bibitem{lab1}LIU M L ...
- ylbtech-LanguageSamples-SimpleVariance
ylbtech-Microsoft-CSharpSamples:ylbtech-LanguageSamples-SimpleVariance 1.A,示例(Sample) 返回顶部 SimpleVar ...
- [转]自用类库整理之SqlHelper和MySqlHelper
本文转自:http://www.cnblogs.com/lzrabbit/p/3287155.html 自用的SQLHelper和MySqlHelper,除一些通用方法外,封装了一些很实用的批量操作方 ...
- iOS:UIResponser控件的介绍(响应者)
UIResponser响应者控件 知识: 在iOS中不是任何对象都能处理事件,只有继承了UIResponser的对象才能接收并处理事件.我们称之为“响应者对象” UIApplication,UIV ...
- 一起talk GDB吧(第五回:GDB查看信息)
各位看官们.大家好,上一回中我们说的是GDB的调用栈调试功能,而且说了怎样使用GDB进行查看调用 栈.这一回中,我们继续介绍GDB的调试功能:查看信息.当然了.我们也会介绍怎样使用GDB查看程序 执行 ...
- Spring框架学习(10)Spring中如何使用事务?
内容源自:Spring中如何使用事务? 一.为什么要使用事务? 如果我们一个业务逻辑只执行一次sql,是不需要使用事务的.但如果要执行多条sql语句才能完成一个业务逻辑的话,这个时候就要使用事务了. ...
- js怎么获取图片的相对地址
<!DOCTYPE html> <html> <head> <meta http-equiv="content-type" content ...
- Python 操作 ElasticSearch
Python 操作 ElasticSearch 学习了:https://www.cnblogs.com/shaosks/p/7592229.html 官网:https://elasticsearch- ...
- [Android Pro] Notification的使用
Android 4.0以前: 1: 普通的notification private static final int NOTIFY_ID = 0; notificationManager = (Not ...