gpt4 book ai didi

java - 在 Java 8 中成对组合两个数组的优雅方式

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

我喜欢通过 BiFunction 成对组合两个通用数组。在这里你可以看到天真的实现:

<A,B,C> C[] combine(A[] as, B[] bs, BiFunction<A,B,C> op) {
if (as.length == bs.length) {
C[] cs = (C[]) new Object[as.length];
for(int i = 0; i < as.length; i++) {
cs[i] = op.apply(as[i], bs[i]);
}
return cs;
} else {
throw new IllegalArgumentException();
}
}

我想知道是否有更优雅的方法可以在没有 for 循环的情况下执行此操作 - 也许使用 Java 8 Stream .我很乐意听取您的建议。

最佳答案

您可以使用 Arrays.setAll方法:

C[] cs = (C[]) new Object[as.length];
Arrays.setAll(cs, i -> op.apply(as[i], bs[i]));

或者,如果 op 的计算成本非常高,您也可以使用 Arrays.parallelSetAll

关于java - 在 Java 8 中成对组合两个数组的优雅方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47948007/

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