FlatMap与过滤器,Map Java

时间:2019-05-23 14:25:29

标签: java java-stream

对于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 个答案:

答案 0 :(得分:4)

我与Java语言架构师一道,您同意Stream#flatMap的{​​{1}}在Java 8中不可读,这就是为什么他们在Java 9中引入AppsAraby的原因。

使用此代码,您的代码更具可读性:

Stream<Optional<T>>