我想将对象流转换为单个对象流。我知道我必须使用
flatMap
方法,但我无法实现这一点,请看:
Stream<Stream<Object>> objectStreams = ...
Stream<Object> flatMappedStream = objectStreams.flatMap( ... );
有人可以帮助我吗?
基本上,您希望将所有嵌套流连接成一个扁平流,而不影响成员本身。你会用
objectStreams.flatMap(Function.identity());
因为您必须为每个流成员提供some映射函数,在本例中它是恒等函数。
通常我们最终会得到嵌套流,因为我们应用了一个将项目映射到流的函数:
Stream<Stream<Object>> objectStreams = srcStream.map(itemToStreamFunction);
如果您的情况如此,只需将
map
更改为 flatMap
:
Stream<Object> flatMappedStream = srcStream.flatMap(itemToStreamFunction);