我想通过可变累加器连接数组流。
目前我正在为 Stream<Foo[]>
执行以下操作:
Foo[] concatenation = streamOfFooArrays.collect(Collector.of(
ArrayList<Foo>::new,
(acc , els ) -> {acc.addAll(Arrays.asList(els));},
(acc1, acc2) -> {acc1.addAll(acc2); return acc1;},
acc -> acc.toArray(new Foo[x.size()])
));
然而,对于感觉非常普遍有用的东西,令人失望的是标准库没有提供更直接的东西。
我是否忽略了什么,或者是否有更好的方法?
最佳答案
您可以使用 flatMap
将数组的元素展平为 Stream<Foo>
然后使用 toArray
生成输出数组:
Foo[] concatenation = streamOfFooArrays.flatMap(Arrays::stream)
.toArray(Foo[]::new);
关于java - 应该如何连接数组流?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39344829/