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是并发执行的 所以效率也更高

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







JDk8的新特性-流和内部iteration的更多相关文章

  1. Java学习:JDK8的新特性

    Java学习:JDK8的新特性 一.十大特性 Lambda表达式 Stream函数式操作流元素集合 接口新增:默认方法与静态方法 方法引用,与Lambda表达式联合使用 引入重复注解 类型注解 最新的 ...

  2. java 28 - 7 JDK8的新特性 之 接口可以使用方法

    JDK8的新特性: http://bbs.itcast.cn/thread-24398-1-1.html 其中之一:接口可以使用方法 interface Inter { //抽象方法 public a ...

  3. Java8新特性--流(Stream)

    1.简介      Java 8是Java自Java 5(发布于2004年)之后的最重要的版本.这个版本包含语言.编译器.库.工具和JVM等方面的十多个新特性.在本文中我们一起来学习引入的一个新特性- ...

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

    ES9的新特性:异步遍历Async iteration 目录 简介 异步遍历 异步iterable的遍历 异步iterable的生成 异步方法和异步生成器 简介 在ES6中,引入了同步iteratio ...

  5. JDK8的新特性——Lambda表达式

    JDK8已经发布快4年的时间了,现在来谈它的新特性显得略微的有点“不合时宜”.尽管JDK8已不再“新”,但它的重要特性之一——Lambda表达式依然是不被大部分开发者所熟练运用,甚至不被开发者所熟知. ...

  6. JDK15就要来了,你却还不知道JDK8的新特性!

    微信搜「烟雨星空」,白嫖更多好文. 现在 Oracle 官方每隔半年就会出一个 JDK 新版本.按时间来算的话,这个月就要出 JDK15 了.然而,大部分公司还是在使用 JDK7 和 8 . 之前去我 ...

  7. 并发设计模式和锁优化以及jdk8并发新特性

    1 设计模式 (1) 单例模式 保证一个类只能一个对象实现.正常的单例模式分为懒汉式和饿汉式,饿汉式就是把单例声明称static a=new A(),系统第一次调用的时候生成(包括调用该类的其他静态资 ...

  8. jdk8的新特性 Lambda表达式

    很多同学一开始接触Java8可能对Java8 Lambda表达式有点陌生. //这是一个普通的集合 List<Employee> list = em.selectEmployeeByLog ...

  9. JDK8.0新特性

    连接转载地址:http://www.2cto.com/kf/201609/544044.html Eclipse: http://aiyiupload.oss-cn-beijing.aliyuncs. ...

随机推荐

  1. BCVP,想真正为社区做努力的开发者们

    基于Net/Core,快速搭建 API & SPA 及微服务应用组织 BASE NETCORE (VUE) PROJECT TEAM 每一个.NET开发者都可以通过自己的开源项目(最好可以配套 ...

  2. 我用 Python 撸了一个 plist 图集拆图工具!附上github源码

    这些年,我一直在使用 JavaScript .CocosCreator 做开发,只要是他们不能解决的,我都不太愿意去弄,或者说是不太情愿去做.真的是手中有把锤子,看什么都是钉子,越是熟悉一样东西,越容 ...

  3. 想springboot启动完成后执行某个方法

    如题,很多时候,我们都需要在springboot项目启动后初始化化一些自己的数据 原文地址:https://www.jianshu.com/p/f80f833ab8f6 实现方法有2个. 一.Appl ...

  4. 【Python】如何结束退出 py 脚本

    需求 当你运行脚本,在判断条件满足时,就退出脚本,结束本次执行. 方法 使用 sys.exit(),直接退出程序,但是会引发一个 SystemExit 异常: 该方法包含一个 status 参数 sy ...

  5. iOS开发 objective C 代码布局

    代码布局抛弃storyboard,用代码生成界面,它的优劣不谈 首先在项目设置中,更改应用的"入口" 不选main,清空它 然后在AppDelegate.m中,更改(添加内容),别 ...

  6. [MIT6.006] 18. Speeding up Dijkstra 加速Dijkstra算法

    在之前的课我们讲过了Dijkstra算法,先回顾下,如下图: 那么如果加速DIjkstra算法寻找最短路径呢?这节课上讲师讲了两种方法:双向搜索(Bi-Directional Search)和目标方向 ...

  7. [MIT6.006] 11. Integer Arithmetic, Karatsuba Multiplication 整型算术,Karatsuba乘法

    很多人不喜欢√2的表达,他们认为它不是一个数. 一.卡塔兰数 Catalan numbers 在数方面上,有个著名的数叫卡塔兰数 Catalan numbers,它是组合数学中一个常在各种计数问题中出 ...

  8. 记在Linux上定位后台服务偶发崩溃的问题

    问题描述 在最近的后台服务中,新增将某个指令的请求数据落盘保存的功能.在具体实现时,采用成员变量来保存请求消息代理头,在接收响应以及消息管理类释放时进行销毁.测试反馈,该服务偶发崩溃. 问题分析 测试 ...

  9. Proftp最简匿名访问配置

    前言 每一次做ftp的配置都要弄半天,找文档,各种权限控制的坑,折腾半天,这次还是准备记录下来,以备不时之需,这里不配置什么高级的功能,就去实现一个最简单的配置 匿名用户的上传和下载 配置proftp ...

  10. HDU100题简要题解(2000~2009)

    前言(废话): 从11月6号到11月20号,断断续续做了有三个星期,总算整完了,之后会慢慢整理汇总到这里 中间部分用到数学知识的十几道题边学边做直接把我这个数学菜鸟做到怀疑人生 11.6~11.10又 ...