我有一个2D整数数组:
int arr[][] = new int[rows][columns];
第n行总和可以使用:
找到int rSum=Arrays.stream(arr[n]).sum();
如何找到第p列总和?
int cSum=Arrays.stream(arr[][p]).sum();
以上行不起作用。
答案 0 :(得分:3)
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
答案 1 :(得分:2)
您可以映射p
元素的每一行:
int cSum = Arrays.stream(arr).mapToInt(row -> row[p]).sum();
这样做如下:首先我们从arr
构造一个流。此流将包含“矩阵”的行。然后,对于每个row
,我们mapToInt
将其int
:该行的p
- 元素。然后,我们将sum(..)
的{{1}}流一起int
加到总和中。