我刚刚发现了新的 Java 8 流功能。来自 Python,我想知道现在是否有一种巧妙的方法来对数组进行运算,例如求和、以“单行 Pythonic”方式将两个数组相乘?
谢谢
添加了一些新方法java.util.Arrays来将数组转换为 Java 8 流,然后可用于求和等。
java.util.Arrays
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这样:
map
forEach
int[] result = IntStream.range(0, a.length).map(i -> a[i] * b[i]).toArray();