图解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呢?不解
欲为大树,何与草争;心若不动,风又奈何。