2017-09-02 58 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