【发布时间】:2015-08-02 02:41:44
【问题描述】:
我有 2 个数组,y 和 z
我想返回一个整数数组,其中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;
}
但是,我想使用 Java 的 8 种函数式编程技术(例如流)来做同样的事情。但是,我知道的所有流函数一次只能用于一个列表。
我该怎么做?
编辑
另外我怎么能做我提到的同样的事情,但我想返回一个布尔数组,其中:result[i] = y[i] == 5 || z[i] == 10
【问题讨论】:
-
通常并行列表/数组有异味。为什么你没有像
YZ[](或者更好的List<YZ>)这样的数组,比如class YZ {int y, z;}?为什么你需要得到的int[]或boolean[]数组?你打算如何进一步使用它?通常只有在不需要切换到流的低级数学库(如矩阵处理)中才可以使用并行数组......
标签: java functional-programming java-8 java-stream