小编典典

Java 8 Stream 和数组操作

all

我刚刚发现了新的 Java 8 流功能。来自 Python,我想知道现在是否有一种巧妙的方法来对数组进行运算,例如求和、以“单行
Pythonic”方式将两个数组相乘?

谢谢


阅读 74

收藏
2022-06-27

共1个答案

小编典典

添加了一些新方法java.util.Arrays来将数组转换为 Java 8 流,然后可用于求和等。

int sum =  Arrays.stream(myIntArray).sum();

将两个数组相乘有点困难,因为我想不出一种在 Stream 操作的同时获取值和索引的方法。这意味着您可能必须对数组的索引进行流式传输。

//in this example a[] and b[] are same length
int[] a = ...
int[] b = ...

int[] result = new int[a.length];

IntStream.range(0, a.length).forEach(i -> result[i] = a[i] * b[i]);

评论指出您可以使用该map方法而不是forEach这样:

int[] result = IntStream.range(0, a.length).map(i -> a[i] * b[i]).toArray();
2022-06-27