Lambda表达式与Stream流

Lambda表达式与Stream流【第一篇】

Java Lambda 表达式是伴随 Java 8 于 2014 年出现,这个时候恰好是多核 CPU 和大数据兴起的时候。
在这种趋势下,芯片设计者只能采用多核并行的设计思路,而软件开发者也必须能够很好地利用底层硬件的并发特性。
这就是【多线程编程】的由来。
【多线程编程】什么都好,但是也会带来【多线程编程】特有的问题——并发控制。
多线程环境下涉及锁相关的编程算法不但容易出错,而且耗时费力。
虽然基于多线程开发java提供了 java.util.concurrent 包以及很多第三方类库,但是,对于【大数据集合】的高效并行处理还是有些欠缺,不能通过简单的【代码改造】就可以在多核 CPU 上高效的运行。

所以,为了解决这个问题(代码能在多核CPU上高效执行),就需要【新技术】开帮助解决这样的问题,基于这样的现实诉求,就出现了:
*Lambda表达式
*Stream流——来自数据源的元素队列,支持聚合操作,提供对【大数据集合】的处理能力。(也是随java8一起出现)

那Lambda表达式和Stream流又是个啥关系呢?
eg:
Stream中使用Lambda表达式的代码demo

要弄明白这两者的关系,就要知道【Lambda表达式的本质——更简洁的匿名函数】,ok,Lambda就是一个匿名函数(你这里可能会问:匿名函数在java8之前就有了,为啥java8还要在搞一个Lambda表达式?关于这一点,后面的文章我会给出解释),既然是一个函数,那就不管你匿不匿名,那本质上也就是一个【管道】——一端进,一端出。

所以,现在我们来看上面的代码,可以发现:
Sream API提供的是一个【更易操作【集合】的平台】,而Lambda表达式提供的是【具体操作集合的逻辑】

**注:**3月7号继续更新Lambda表达式、Stream流、函数式接口、函数式编程这4者共同构建的Java 8的代码编程风格——函数式编程

本文我自己感觉写的不是很深刻,后面的相关文章大家可以期待下【会相当深刻】

猜你喜欢

转载自blog.csdn.net/weixin_44334964/article/details/114242018