当我第一次在项目代码中看到Stream流的时候,心里不由得骂了一句“傻X”炫什么技。当我开始尝试在代码中使用Stream时,不由得感叹真香。
记得以前有朋友聊天说,他在代码中用了Lambda表达式结果CodeReview的时候老大让它改了。我在“第三章 Stream流”写了,“ 简洁的后果就是,代码变得不那么好读,其实并不是代码的可读性降低了,而只是代码不是按照你的习惯去写的 ”。人们不愿意去改变,因为改变似乎会给他带来风险,会让他在未知的领域不知所措,甚至被淘汰。所以人们开始找一些借口,可读性不高、炫技、难以调试、难以维护……
如果你从未了解过或者对Java8的Stream知之甚少,我建议可以从第一章开始慢慢品慢慢实践,如果你需要救急需要急切的知道怎么使List转换为Map结构等实际的场景,那么我建议你可以直接跳转到“第五章 Stream流编码实战”,我相信在第五章已经涵盖了大部分场景,也期待你能根据示例代码就能编写出符合自身业务的代码。如果有其他没有覆盖到的场景,我也非常期待你能通过公众号“CoderBuff”与我交流。
《Java8 Stream编码实战》的代码全部在https://github.com/yu-linfeng/BlogRepositories/tree/master/repositories/stream-coding,一定要配合源码阅读,并且不断加以实践,才能更好的掌握Stream。
第一章 认识Java8以及函数式编程、第二章 Lambda表达式:快速介绍函数式编程的知识,想直接学习Stream可以跳过。
第三章 Stream流:正式介绍Stream流的常用操作。
第四章 并行化Stream流:介绍并行化流,并对比for循环、串行化流、并行化流性能。
第五章 Stream流编码实战:这章是重点,而且我也强烈建议把这章摘下来,当做应急手册,随时翻阅手册解决实际编码中遇到的场景。
第六章 调试与重构:IDEA编译器从2019年的版本已经新增了对Stream流的调试功能,不要再说Stream不好调试了。
老规矩,后面几天,我会连续推送《Java8 Stream编码实战》中的内容,如果有朋友想要一睹为快,也可直接在公众号中( CoderBuff )回复“ stream ”抢先获取PDF完整版。
近期教程:
《ElasticSearch6.x实战教程》
《Redis5.x入门教程》
这是一个能给程序员加buff的公众号 (CoderBuff)