JDK8到今天已经出了好几年了  但是在公司能用到新特性的地方还是很少,

去年的时候当时项目老大要求我们用最新的写法来写Java

刚开始看到用stream写出来的代码一脸懵逼,内心就在想  这是Java吗?

后面开始看api文档 发现这样写出来的代码简洁很多,性能也更好

今天写篇博客来介绍流和foreach

在jdk8以前  我们写循环的时候基本上都是用

for (StudentIdList idList : studentIdList) {
//处理业务
}这么写在我的理解来看 不够优雅

如果用stream结合foreach来写 

studentIdList.parallelStream().forEach(studentIdList1 -> {
//处理业务
});

如上所述代码  好像也并没有太大的差别但是我们可以结合 filter等函数来过滤一些不需要的数据例如
studentIdList.parallelStream()
.filter(studentIdList1 -> studentIdList1.getStudentId() != null)
.forEach(studentIdList1 -> {//处理业务});

这样我们就可以不在循环里面判空  同时因为parallelStream是并发执行的  所以效率也更高

而且因为现在业务都会复杂的多,所以这么写会节省很多的代码量




转载于:https://www.cnblogs.com/blogsofmy/p/10710935.html

JDk8的新特性-流和内部iteration相关推荐

  1. JDK 每半年就会更新一次新特性,再不掌握就要落伍了:JDK8 的新特性

    该图片由Alexandr Podvalny在Pixabay上发布 你好,我是看山. 本文收录在 <Java 进阶> 系列专栏中. 从 2017 年开始,JDK 版本更新策略从原来的每两年一 ...

  2. JDK8之新特性扩展篇

    转载自 JDK8之新特性扩展篇 BASE64 base64编码解码已经被加入到了jdk8中了. import java.nio.charset.StandardCharsets; import jav ...

  3. jdk8 接口新特性

    jdk8 接口新特性 概述: jdk8之前接口是规则的集合体,方法只有抽象方法. jdk8版本开始不光光有抽象方法同时增加了实体方法. 新加实体方法: 默认方法 静态方法 默认方法 概述: ​ 被关键 ...

  4. JDK8 新特性流式数据处理

    在学习JDK8新特性Optional类的时候,提到对于Optional的两个操作映射和过滤设计到JDK提供的流式出来.这篇文章便详细的介绍流式处理: 一. 流式处理简介 流式处理给开发者的第一感觉就是 ...

  5. 【jdk8的新特性】

    JDK1.8新特性 接口方法 接口中的属性默认有:static final 修饰符修饰: 定义的方法默认是抽象方法: 现在可以写默认方法: 由于JDK1.8的API,在已有的接口上,新增了很多的新方法 ...

  6. ES9的新特性:异步遍历Async iteration

    文章目录 简介 异步遍历 异步iterable的遍历 异步iterable的生成 异步方法和异步生成器 简介 在ES6中,引入了同步iteration的概念,随着ES8中的Async操作符的引用,是不 ...

  7. 【JDK8语法新特性】:超全总结{lamda,stream,optional,新日期类API},JDK8对策略模式支持,可以直接贴代码运行测试。

    文章目录 Java8新特性 速度快 代码更少(增加了新的语法,lamda表达式)(主要) 强大的Stream API(主要) 便于并行 最大减少空指针异常(Optional API) 提供了线程安全的 ...

  8. JDK8的新特性总结

    文章目录 1.接口默认方法实现 2.新增Base64加解密API 2.1.Base64编码简介 2.2.JDK1.8之前Base64的API 2.3.JDK1.8之后Base64的API 3.时间日期 ...

  9. jdk8新特性(接口新特性、lambda表达式、方法引用、函数式接口、Stream流)和单例设计模式

    1.单例设计模式 1.概念: 设计模式:使用固有的流程或方式设计出来的类接口.枚举等元素 2.设计原则: 1.私有化构造方法[private.protected] 2.类中创建最终对象[唯一不能被赋值 ...

最新文章

  1. pdf 加深 扫描件_为什么PDF文档不能像Word文档一样随便编辑?如何免费将PDF转换为Word?...
  2. 长沙网络推广教你如何在网站优化中让URL标准化?
  3. 办公文档加密,企业文档加密,强制性透明加密技术,fasoft
  4. 让数字营销向人工智能借一双慧眼
  5. JVM技术周报第2期
  6. java基础英语---第二十六天
  7. servlet核心API的UML图
  8. Hadoop集群(一) Zookeeper搭建
  9. android colorstatelist_B站Android多主题框架开源:MagicaSakura
  10. 前端切换视图_前端开发的10个软件工具,用过3个就是大神!
  11. JMeter接口测试入门
  12. 详细介绍各种常见的分布
  13. 永磁同步电机矢量控制(六)——MTPA最大转矩电流比控制
  14. access如何求平均单价_ACCESS中计算日均值
  15. 遥感的自然生态监测 专题
  16. 遮羞布被撕,业界反思5G的冒进,运营商重视挖掘现有5G网络的潜力
  17. 机器学习和深度学习资料汇总【02】
  18. python下载vip素材_Python下载素材脚本
  19. flutter type ‘int‘ is not a subtype of type ‘String?‘
  20. Git commit (amend)

热门文章

  1. DevExpress的DateEdit设置显示日期和时间
  2. ionic模版引擎及循环
  3. CentOS上如何把Web服务器从Apache换到nginx
  4. 常用的shell脚本案例(14.04.15更新)
  5. Openldap部署LDAP服务器平台
  6. saltstack之远程触发文件备份、回滚
  7. MySQL中的锁(表锁、行锁)
  8. Redis Info详解
  9. Xcode SVN配置
  10. C#通过WMI的wind32 的API函数实现msinfo32的本地和远程计算机的系统摘要信息查看功能...