두 개의 일반 배열을 BiFunction
으로 쌍으로 결합하는 것을 좋아합니다. 여기서 당신은 순진 구현을 참조하십시오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();
}
}
나는를위한 루프없이이 일을 더 우아한 방법이 있는지 궁금을 - 어쩌면 Java 8 Stream
와 함께. 나는 당신의 제안에 행복 할 것입니다.
Aominè가 루프의 스트림 기반 버전을 제공했지만 나는 더 우아하지 않다고 생각합니다. 그러나'.range (..) '다음에'.parallel()'을 추가하면 병렬 처리가 가능해 지므로 멀티 프로세서 환경에서이 방법을 사용하는 것이 더 좋다. – Pshemo
Guava의 ['Streams.zip()'] (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
당신은 그 경고를 억압해서는 안됩니다, btw. 조만간 얼굴에 폭파 될 것입니다. – shmosel