gpt4 book ai didi

java - 应该如何连接数组流?

转载 作者:搜寻专家 更新时间:2023-10-31 19:44:10 26 4
gpt4 key购买 nike

我想通过可变累加器连接数组流。

目前我正在为 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/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com