Optional::stream如果存在,则返回一个包含该值的 Stream,否则返回一个空流。所以对于一个Stream<Optional<T>> optionals,
optionals.flatMap(Optional::stream)
Run Code Online (Sandbox Code Playgroud)
返回一个Stream<T>包含所有选项的当前值。但是关于它背后的功能,我不确定为每个当前值创建一个自己的流然后 flatMapping 流的流的效率有多高。
但即使在文档中,这也被称为预期用途。
与首先过滤所有当前值然后将选项映射到它们的值相比,为什么流式传输选项流不是非常低效?
返回不可变列表而不是可变列表背后的原因是什么?