如何使用Java streams查找数组列和
我有一个二维整数数组:如何使用Java streams查找数组列和,java,functional-programming,java-stream,Java,Functional Programming,Java Stream,我有一个二维整数数组: int arr[][] = new int[rows][columns]; 第n行总和可通过以下方式找到: int rSum=Arrays.stream(arr[n]).sum(); 如何找到第pth列的总和 int cSum=Arrays.stream(arr[][p]).sum(); 上面这行不行 您可以映射p-th元素上的每一行: int arr[][] = new int[][] { {1,2},{3,4},{5,6}
int arr[][] = new int[rows][columns];
第n行总和可通过以下方式找到:
int rSum=Arrays.stream(arr[n]).sum();
如何找到第pth列的总和
int cSum=Arrays.stream(arr[][p]).sum();
上面这行不行 您可以映射
p
-th元素上的每一行:
int arr[][] = new int[][] {
{1,2},{3,4},{5,6}
};
int s = Arrays.stream(arr).mapToInt(a -> a[1]).sum();
System.out.println(s); // 12
int cSum = Arrays.stream(arr).mapToInt(row -> row[p]).sum();
其工作原理如下:首先,我们从
arr
构造一个流。此流将包含“矩阵”的行。然后,对于每个这样的行
,我们将mapToInt
映射到int
:该行的p
-第个元素。然后我们把sum(…)
的int
s流一起加到sum中。谢谢!不过我觉得应该是Arrays.stream