在Java 8中为多个数组使用流/函数编程

Yah*_*din 3 java functional-programming java-8 java-stream

我有2个数组,yz 欲返回一个整数数组,其中result[i] = y[i] - z[i]

这是代码:

static int[] join(int[] y, int[] z) {
    int[] result = new int[Math.min(y.length, z.length)];
    for(int i = 0; i < result.length; ++i) {
        result[i] = y[i] - z[i];
    }
    return result;
}
Run Code Online (Sandbox Code Playgroud)

但是我想使用Java的8种函数式编程技术(如流)来做同样的事情.但是我知道的所有流函数一次只能用于一个列表.

我怎样才能做到这一点?

编辑 另外我怎么能做我提到的相同的事情,但我想返回一个布尔数组,其中:result[i] = y[i] == 5 || z[i] == 10

Kon*_*kov 5

您可以使用计数器变量IntStream模拟迭代:

static int[] join(int[] y, int[] z) {
    int min = Math.min(y.length, z.length);
    return IntStream.range(0, min).map(i -> y[i] - z[i]).toArray();
}
Run Code Online (Sandbox Code Playgroud)