这是可能的(伪Java):
someList = [
[1,2],
[3,4]
];
Stream<List<X>> a = someList.stream();
Stream<X> b = a.whatever(...);
assert b.collect(list).equals([1,2,3,4]);
更一般地说,流上是否有操作可以增加流中元素的数量(而不是像filter
那样减少)?
答案 0 :(得分:3)
是。 flatMap
就是这么做的。
Stream<X> b = someList.stream().flatMap(l -> l.stream());
假设someList
是List<List<X>>
,flatMap
会将内部列表的所有元素压缩为单个流。