加入收藏 | 设为首页 | 会员中心 | 我要投稿 河北网 (https://www.hebeiwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 建站 > 正文

Java 8中Stream API的这些奇技淫巧!你都Get到了吗?

发布时间:2019-04-26 16:58:13 所属栏目:建站 来源:佚名
导读:Stream简介 1、Java 8引入了全新的Stream API。这里的Stream和I/O流差异,它更像具有Iterable的荟萃类,但举动和荟萃类又有所差异。 2、stream是对荟萃工具成果的加强,它专注于对荟萃工具举办各类很是便利、高效的聚合操纵,可能大批量数据操纵。 3、只要
副问题[/!--empirenews.page--]

Java 8中Stream API的这些奇技淫巧!你都Get到了吗?

 Stream简介

1、Java 8引入了全新的Stream API。这里的Stream和I/O流差异,它更像具有Iterable的荟萃类,但举动和荟萃类又有所差异。

2、stream是对荟萃工具成果的加强,它专注于对荟萃工具举办各类很是便利、高效的聚合操纵,可能大批量数据操纵。

3、只要给出必要对其包括的元素执行什么操纵,好比 “过滤掉长度大于 10 的字符串”、“获取每个字符串的首字母”等,Stream 会隐式地在内部举办遍历,做出响应的数据转换。

为什么要行使Stream

1、函数式编程带来的甜头尤为明明。这种代码更多地表达了营业逻辑的意图,而不是它的实现机制。易读的代码也易于维护、更靠得住、更不轻易堕落。

2、高端

实例数据源

Filter

1、遍历数据并搜查个中的元素时行使。

2、filter接管一个函数作为参数,该函数用Lambda表达式暗示。

Map

1、map天生的是个一对一映射,for的浸染

2、较量常用

3、并且很简朴

FlatMap

1、顾名思义,跟map差不多,更深条理的操纵

2、但照旧有区此外

3、map和flat返回值差异

4、Map 每个输入元素,都凭证法则转换成为其它一个元素。

尚有一些场景,是一对多映射相关的,这时必要 flatMap。

5、Map一对一

6、Flatmap一对多

7、map和flatMap的要领声明是纷歧样的

(1) Stream map(Function mapper);

(2) Stream flatMap(Function> mapper);

(3) map和flatMap的区别:我小我私人以为,flatMap的可以处理赏罚更深条理的数据,入参为多个list,功效可以返回为一个list,而map是一对一的,入参是多个list,功效返回必需是多个list。普通的说,假如入参都是工具,那么flatMap可以操纵工具内里的工具,而map只能操纵第一层。

Reduce

1、感受相同递归

2、数字(字符串)累加

3、小我私人没咋用过

Collect

1、collect在流中天生列表,map,等常用的数据布局

2、toList()

3、toSet()

4、toMap()

5、自界说

Optional

1、Optional 是为焦点类库新计划的一个数据范例,用来替代 null 值。

2、人们对原有的 null 值有许多诉苦,乃至连发现这一观念的Tony Hoare也是云云,他曾嗣魅这是本身的一个“代价连城的错误”

3、用处很广,不仅在lambda中,哪都能用

4、Optional.of(T),T为非空,不然初始化报错

5、Optional.ofNullable(T),T为恣意,可觉得空

6、isPresent(),相等于 !=null

7、ifPresent(T), T可所以一段lambda表达式 ,可能其他代码,非空则执行

并发

1、stream替代成parallelStream或 parallel

2、输入流的巨细并不是抉择并行化是否会带来速率晋升的独一身分,机能还会受到编写代码的方法和核的数目的影响

3、影响机能的五要素是:数据巨细、源数据布局、值是否装箱、可用的CPU核数目,以及处理赏罚每个元素所花的时刻

调试

1、list.map.fiter.map.xx 为链式挪用,最终挪用collect(xx)返回功效

2、分惰性求值和赶早求值

(编辑:河北网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读