栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

Java 8中的map()和flatMap()方法之间有什么区别?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Java 8中的map()和flatMap()方法之间有什么区别?

双方map并

flatMap
可以应用到
Stream<T>
他们都回报
Stream<R>
。不同之处在于,该map运算为每个输入值生成一个输出值,而该
flatMap
运算为每个输入值生成任意数量(零个或多个)的值。

这反映在每个操作的参数中。

该map操作采用一个

Function
,对输入流中的每个值调用,并产生一个结果值,该结果值发送到输出流。

flatMap
操作采用的功能在概念上要消耗一个值并产生任意数量的值。但是,在Java中,方法返回任意数量的值很麻烦,因为方法只能返回零或一个值。可以想象一个API,其中的映射器函数
flatMap
需要一个值并返回一个数组或一个
List
值,然后将其发送到输出。鉴于这是流库,一种表示任意数量的返回值的特别合适的方法是使映射器函数本身返回流!映射器返回的流中的值将从流中排出,并传递到输出流。每次对映射器函数的调用返回的值的“聚集”在输出流中根本没有被区分,因此输出被认为是“扁平化的”。

典型的应用是的映射功能

flatMap
,以回报
Stream.empty()
,如果要发送零个值,或者类似的东西
Stream.of(a, b, c)
,如果要返回几个值。但当然可以返回任何流。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/407736.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号