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. 关于Java设计模式的一些概况

    设计模式(Design pattern)在软件行业一直都扮演着很重要的角色.最近感觉自己对设计模式的知识有些遗忘了,虽然以前也看了很多,但是坦白说,其实并没有怎么理解.基本还是为了应付面试.然后,在工 ...

  2. exVim安装

    安装 安装必备 Vim 7.3 or higher. Vundle or Pathogen 下载/更新exVim 注意事项 安装exVim将不会覆盖你已经存在的Vim环境,这个仓库所包含的文件,变化, ...

  3. PAAS云服务平台

    云计算是一种可以方便.按需从网络訪问的.可配置的.共享的资源池(如网络.server.存储.应用程序和服务)模型,且仅仅需最少的管理(服务提供方交互)就可以高速供应和公布该模型. 云计算平台的核心部分 ...

  4. Direcshow中视频捕捉和參数设置报告

    Direcshow中视频捕捉和參数设置报告 1.      关于视频捕捉(About Video Capture in Dshow) 1视频捕捉Graph的构建 一个能够捕捉音频或者视频的graph图 ...

  5. nodejs之SVG转图片下载方案

    本文介绍在nodejs基础上.怎样实现将svg转为png并下载的功能. 所需Webkit和node module简单介绍: phantomjs:一个基于WebKit的server端JavaScript ...

  6. EAS常用工具类

    package com.kingdee.eas.custom; import java.io.File; import java.io.FileNotFoundException; import ja ...

  7. Linux下如何修改root密码以及找回root密码

    Linux下修改root密码方法 以root身份登陆,执行: passwd 用户名 然后根据提示,输入新密码,再次输入新密码,系统会提示成功修改密码. 具体示例如下: [root@www ~]# pa ...

  8. java基础讲解12-----Swing

    package com.swing; import java.awt.*; import javax.swing.*; public class Swing01  extends JFrame{ /* ...

  9. 使用jq Deferred防止代码被回调函数分解分解的支离破碎

    //移动人物 function moveInterval(stopPosotion){ var dtd = $.Deferred(); // 生成Deferred对象 var yidong= wind ...

  10. jquery.zclip实现点击拷贝文字功能

    <script type="text/javascript" src="http://www.sitejs.cn/templets/skins/js/jquery- ...