2017-09-02 78 views
2

我有一个二维整数数组:如何使用Java来找到阵列总和流

int arr[][] = new int[rows][columns]; 

第n行和可以使用发现:

int rSum=Arrays.stream(arr[n]).sum(); 

我如何才能找到第p列总和?

int cSum=Arrays.stream(arr[][p]).sum(); 

上述行不起作用。

回答

2

您可以将p个元素的每一行上图:

int cSum = Arrays.stream(arr).mapToInt(row -> row[p]).sum(); 

这种工作方式如下:首先,我们构建从arr流。该流将包含“矩阵”的。然后对于每个这样的row,我们mapToInt它到一个int:该行的第p个元素。然后我们sum(..)int一起来的总和。

+0

谢谢!我认为它应该是Arrays.stream,虽然 – costania

+0

@costania:是的,谢谢你发现错字:)。 –

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