【发布时间】:2019-10-20 12:48:58
【问题描述】:
例如,我想要这样的东西:
n = {1, 2, 3, 4, 5}
m = {1, 2, 3, 4, 5}
x = Arrays.stream(n);
y = Arrays.stream(n);
IntStream.multiply(x,y) // int stream now containing squares
我想避免这样做:
Intstream.range(0, x.count())
.map(i-> {
z= biFunction.apply(
x.findFirst().get(),
y.findFirst().get()
);
x.skip(1);
y.skip(1);
return z;
})
(创建一个 int-stream,仅用于索引)。
【问题讨论】:
-
不幸的是,我认为这是不可能的。 Java 流并不适用于所有计算情况。您必须使用提供的示例(我个人认为这看起来不太糟糕)。
-
我宁愿简单地使用数组
-
一切由你决定。流解决方案肯定更优雅,但直接数组访问性能更高。
-
本示例的预期输出是什么?
-
@Tobiq 即使你有这样的
BiFunction比如Math::multiplyExact来计算两个数字的乘积。必须以某种方式指定数字的索引。
标签: java java-stream