如何获取二维数组中每行最后一列中元素的总和?

时间:2016-04-26 00:48:03

标签: java arrays multidimensional-array

我正在研究这个程序,我想在二维的整数数组中找到每行最后一列中元素的总和。

到目前为止,我有这个代码可以正常工作。

public class Lab {

public static void main(String[] args) {

    int[][] arr = { { 2, 4, 5, 7 }, { 4, 8, 7, 5 }, { 5, 9, 2, 20 } };

    //getting each array from multidimensional array (arr)
    int[] firstRow = arr[0];
    int[] secondRow = arr[1];
    int[] lastRow = arr[arr.length - 1];

    //getting last element in each row
    int lastItemInFirstRow = firstRow[firstRow.length - 1]; // 7
    int lastItemInSecondRow = secondRow[secondRow.length - 1];// 5
    int lastItemInLastRow = lastRow[lastRow.length - 1];  // 20


    //sum of the elements in the last column of each row in a two-dimensional array
    // 7 + 5 + 20
    System.out.println(lastItemInFirstRow + lastItemInSecondRow + lastItemInLastRow); //32
 }
}

但是,我需要创建一种比这更有效的方法。例如,如果我的多维数组中有20个数组,该怎么办?如果我尝试上面的代码,它将需要许多行代码。所以我创建了一个方法来处理每行最后一列中元素的总和,但我不知道如何得到实际的总和。请有人帮帮我。非常感谢!

这是我的方法:

public static int sumOfElementsInLastColumn(int[][] arr){

    int sum = 0;

    for(int row = 0 ; row < arr.length; row++){
        for(int column = 0 ; column < arr[row].length ; column++){
            sum += arr[row][arr.length];
        }
    }
    return sum;

}

1 个答案:

答案 0 :(得分:2)

public static int sumOfElementsInLastColumn(int[][] arr)
{
    int sum = 0;

    for (int i = 0; i < arr.length; i++)
    {
        int [] row = arr[i];

        sum += row[row.length - 1];
    }
    return sum;
}