java8 stream 多个_图解java8 stream 的几个转换方法

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

1.distinct

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

725b825f9dd86938afc2436bb29d0d91.png

2.filter

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

f9e5be141b6b6d521c9ec5fd3a96fa59.png

3.map

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

4c5bf8e1532a0197de40573f0b9c471b.png

4.flatmap

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

a4fe6be614dfcd0964bb8b597cf05639.png

5.peek

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

2fae86667b8d067667d0137f26d7bf39.png

6.limit

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

cc495ba202fd49d902bd341f2bcab065.png

7.skip

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

646b4804b0c6090711c7d27895b6ddc6.png

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

3757438342b3e5f22e3e0b7610bf34bb.png

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

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值