JDk8的新特性-流和内部iteration
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是并发执行的 所以效率也更高
而且因为现在业务都会复杂的多,所以这么写会节省很多的代码量