Stream流操作中的map()与 flatMap()的区别

1、功能说明

(1)map(),对集合中的元素逐个进行函数操作映射成另外一个。
(2)flatMap,接收一个函数作为参数,将流中的每个值都转换为另一个流,然后把所有的流都连接成一个流。

【示例一】
// 如果我们把List中的 所有字符变为大写。
Map 操作
[['a', 'b', 'c'], ['d', 'e', 'f']]   =>>   [['A', 'B', 'C'], ['D', 'E', 'F']]

FlatMap 操作
[['a', 'b', 'c'], ['d', 'e', 'f']]   =>>   ['A', 'B', 'C', 'D', 'E', 'F']
2、相同点

Map 和 FlatMap,都是流中 集合数据类型的 转换操作符。

3、不同点

(1)Map 是 将 集合数据中每一个元素作为 参数 传入的lambda表达后进行转换操作, 得到的结果用一个ArrayList 收集起来。
(2)FlatMap, Flat(扁平化),顾名思义, 就是在Map的基础上,会将集合的数据结构给展开。flatMap()方法用于将流中的每个元素转换为一个新的流,然后将这些新的流合并成一个流。
(3)FlatMap传入的lambda表达式的返回值,必须为集合接口类型。如:flatMap(Arrays::stream)、flatMap(List::stream)

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值