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的更多相关文章

  1. jdk8中的StreamAPI

    1.实体类 package com.zy.model; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.D ...

  2. JDK7和JDK8一些重要新特性

    jdk7新特性(部分) switch支持字符串 List AutoCloseable接口实现自动关闭,在try()中 新增获取环境信息的工具方法,getJavaHomeDir,getUserHomeD ...

  3. android开发环境搭建(ubuntu15.04+jdk8+eclipse+android sdk)

    开始学习android开发,首先对其环境对搭建比较重要.平台可以选择window/linux/mac等,这里,我选择ubuntu系统,方法比较原始,当然也可以直接用google提供的android s ...

  4. win7 安装JDK7和JDK8后,卸载JDK8后出错

    这是本人学习Java过程中遇到的一些问题和解决方法,在此记录,方便本人查看,解决他人疑惑. 本人win7 x64旗舰版,同时安装了JDK7和JDK8,卸载了JDK8之后,cmd命令行输入:java - ...

  5. JDK8+Dubbo2.5.2实践

    几年前就听说过Dubbo的大名,今天由于工作需要,研究一下. 从网上找了一篇文章,非常靠谱,并且提供了简单的示例代码,基本上可以跑起来. 文章地址: http://www.cnblogs.com/Ja ...

  6. xp下安装jdk8

    下载jdk8安装包,地址:http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html下载7- ...

  7. Linux Mint安装jdk8

    想到研究Java,可能学习openjdk是比较好的方式,于是去找openjdk.对于Debian based系统的安装指南是: -jdk 然而我的Linux Mint 17却无法安装.搜索之后发现如下 ...

  8. jdk8 Lambda表达式与匿名内部类比较

    Labmda表达式与匿名内部类 前言 Java Labmda表达式的一个重要用法是简化某些匿名内部类(Anonymous Classes)的写法.实际上Lambda表达式并不仅仅是匿名内部类的语法糖, ...

  9. JDK8 的 Lambda 表达式原理

    JDK8 使用一行 Lambda 表达式可以代替先前用匿名类五六行代码所做的事情,那么它是怎么实现的呢?从所周知,匿名类会在编译的时候生成与宿主类带上 $1, $2 的类文件,如写在 TestLamb ...

随机推荐

  1. pyqt5生成的APP制作DMG

    http://blog.csdn.net/wudj810818/article/details/70557284 1.环境 Mac OS Python3.5 PyQt5 2.所需工具 Pyinstal ...

  2. 二十四种设计模式:备忘录模式(Memento Pattern)

    备忘录模式(Memento Pattern) 介绍在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态.这样以后就可将该对象恢复到保存的状态. 示例有一个Message实体类,某 ...

  3. 正规方程 Normal Equation

    正规方程 Normal Equation 前几篇博客介绍了一些梯度下降的有用技巧,特征缩放(详见http://blog.csdn.net/u012328159/article/details/5103 ...

  4. javascript——正則表達式

    正則表達式(RegExp对象):主要用于表单验证 1.创建正則表達式: (1).var ret = /pattern/; pattern是内容.能够是正則表達式的内容,能够是字符或是其它的内容 (2) ...

  5. Maven+TestNG+ReportNG/Allure接口自动化测试框架初探(上)

    转载:http://www.51testing.com/html/58/n-3721258.html 由于一直忙于功能和性能测试,接口自动化测试框架改造的工作被耽搁了好久.近期闲暇一些,可以来做点有意 ...

  6. java线程总结(1/5)

    前言 闲来无事正值面试,看面试中有线程之问题,特此总结一番. 正文 一.线程和进程的区别:1.每个进程都有独立的代码和数据空间(进程上下文),进程间的切换会有较大的开销.2.线程可以看成时轻量级的进程 ...

  7. 安卓Eclipse开发人员的福音

    我们知道.谷歌已经放弃对Eclipse(ADT)的维护更新了.如今官网上也找不到ADT的下载链接了,我们大多数同学仍在使用的ADT版本号可能已经非常老了,预计大多数的SDK版本号仅仅到4.4,而,在尝 ...

  8. html 接收GET请求参数

       function GetQueryString(name)   {        var reg = new RegExp("(^|&)"+ name +" ...

  9. JS判断一个字符串是否包含一个子串函数.

    微信小程序 JS判断一个字符串是否包含一个子串函数. //str 字符串,name子串     contains:function(str,name){         if(str.indexOf( ...

  10. 一个编译可执行jar包 jar包中不包含resources下config.properties且可以读到config.properties文件且classpath中有当前路径的pom

    <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/20 ...