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 ...
随机推荐
- jquery ajax 不执行赋值,return没有返回值的解决方法
大家先看一段简单的jquery ajax 返回值的js 复制代码 代码如下: function getReturnAjax{ $.ajax({ type:"POST", url:& ...
- 【好】strong-password-checker,我自己做出来的:)
我自己做出来的,分了几种情况来考虑.(再后面有加了注释的版本) https://leetcode.com/problems/strong-password-checker/ // 加油! public ...
- JS函数节流和函数防抖问题分析
问题1:如果实现了dom拖拽功能,但是在绑定拖拽事件的时候发现每当元素稍微移动一点便触发了大量的回调函数,导致浏览器直接卡死,这个时候怎么办? 问题2:如果给一个按钮绑定了表单提交的post事件,但是 ...
- 解决ping 127.0.0.1不通的问题
用树莓派放在家里当pt下载器,一直挺惬意的,因为没有公网ip用vps和frp配置代理,偶尔ssh上去看看,一段时间也用得好好的. 可是最近这几天,在办公室ssh上去死活连不上. 于是回去后开始折腾,局 ...
- Android SDK Manager 更新
Android SDK Manager 更新 解决国内访问Google服务器的困难: 1.启动 Android SDK Manager : 2.打开主界面,依次选择「Tools」.「Options…」 ...
- STL经常使用遍历算法for_each和transform的比較
for_each()和transform()算法比較 1)STL 算法 – 改动性算法 for_each() copy() copy_backward() transform() merge ...
- JAVA基础(10)——IO、NIO
转载:http://blog.csdn.net/weitry/article/details/52964948 JAVA基础系列规划: JAVA基础(1)——基本概念 JAVA基础(2)——数据类型 ...
- Groovy(java)+Spock+IDEA+maven+Jenkins+SVN+maven-surefire-plugin+maven-surefire-report-plugin/maven-antrun-extended-plugin集成接口测试框架
文章为原创,未经本人授权禁止转载. 一.spock框架环境搭建. 二.基于spock框架的脚本开发. 三.基于spock框架的用例执行并生成HTML报告. 四.集成jenkins生成HTML报告. 五 ...
- Afinal的jar包进行代码混淆出错
今天用到了代码混淆,混淆过后APP不能够运行,老报错,由于项目中只用了Afinal的第三方库,于是按照网上给出的答案为了不混淆Afinal的jar包,在配置文件中写入了下面的语句: -libraryj ...
- ajax请求接口数据
var api = 'http://192.168.68.208:666/ajax/api.ashx'; // api += 'action=/api/blackhistory/list&ke ...