ile birleştirmenin zarif yolu İki genel diziyi BiFunction
ile birleştirmek istiyorum. Burada naif uygulanmasını bkz:İki diziyi Java 8
<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();
}
}
Ben bir for döngüsü olmadan bunu yapmak için daha şık bir yol olup olmadığını merak - belki Java 8 Stream
ile. Önerilerinden memnun olurum.
Aominè, döngünüzün akışa dayalı sürümünü sağlamasına rağmen, daha zarif olduğunu düşünmüyorum. Ama '.parallel()' yi '.range (..)' dan sonra eklerseniz, bu işlemin kullanılması çok-işlemcili ortamlarda daha iyi olabilir. – Pshemo
Guava'nın ['Streams.zip()'] sayfasını kullanabilirsiniz (https://google.github.io/guava/releases/snapshot/api/docs/com/google/common/collect/Streams.html#zip-java .util.stream.Stream-java.util.stream.Stream-java.util.function.BiFunction-). – shmosel
Bu uyarıyı bastırmamalısınız, btw. Er ya da geç yüzünüzde havaya uçmak zorunda. – shmosel