图解java8 stream 的几个转换方法


图片摘自:http://ifeve.com/stream/


1.distinct

对于stream中包含的元素进行去重复操作(去重复依赖元素的equals方法)

2.filter

对于stream中包含的元素使用给定的过滤函数进行过滤操作

3.map

对于stream中包含的元素使用给定的转换函数进行转换操作。这个方法有三个变种方法:mapToInt、mapToLong、mapToDouble

4.flatmap

和map类似,不同的是其每个元素转换得到的是stream对象,会把子stream中的元素压缩到父集合中

5.peek

生成一个包含源stream所有元素的新stream,同时会提供一个消费函数(consumer实例),新stream每个元素被消费的时候都会执行给定的消费函数

6.limit

对一个stream进行截断操作,截取其前N个元素。如果源stream中包含的元素个数小于N,则截取所有元素

7.skip

返回一个丢弃源stream前N个元素后剩下的元素组成的stream。如果源stream中包含的元素小于N,则返回一个空的stream


 关于peek,我刚开始一直疑惑它跟map的作用是一样的

那么它除了输出一下还能执行其他什么consumer呢?不解


欲为大树,何与草争;心若不动,风又奈何。
原文地址:https://www.cnblogs.com/admln/p/get-java8-stream-transformMethod-by-image.html