FlatMap vs Filter,Map Java [重复]
Posted
技术标签:
【中文标题】FlatMap vs Filter,Map Java [重复]【英文标题】:FlatMap vs Filter, Map Java [duplicate] 【发布时间】:2019-10-10 03:45:27 【问题描述】:对于 Java 流,是否有理由使用 .flatMap(...)
而不是 .filter(...)
和 .map(...)
的组合?
使用.flatMap(...)
的可读性通常不如.filter(...)
和.map(...)
的组合,那么使用.flatMap(...)
有什么优势吗?
例如Optional
:
.flatMap(optional -> optional.isPresent() ? Stream.of(optional.get()) : Stream.empty())
或
.filter(optional -> optional.isPresent())
.map(optional -> optional.get())
【问题讨论】:
【参考方案1】:我和 Java 语言架构师都同意你的观点,Stream#flatMap
代表 Stream<Optional<T>>
在 Java 8 中不可读,这就是他们在 Java 9 中引入 Optional#stream
的原因。
使用它,您的代码变得更具可读性:
.flatMap(Optional::stream)
【讨论】:
以上是关于FlatMap vs Filter,Map Java [重复]的主要内容,如果未能解决你的问题,请参考以下文章
初涉RxAndroid .map() . filter() flatMap()
Swift中 Map,Flatmap,Filter,Reduce的用法
spark 教程三 spark Map filter flatMap union distinct intersection操作
spark 的一些常用函数 filter,map,flatMap,lookup ,reduce,groupByKey
java1.8 新特性(五 如何使用filter,limit ,skip ,distinct map flatmap ,collect 操作 java集合)
高效 告别996,开启java高效编程之门 3-7实战:常用中间操作演示之:过滤/映射/扁平化 filter/map/flagMap