返回2d数组中行的最大值

时间:2018-03-30 16:55:45

标签: java

我目前正在研究一种计算2D数组中每行总和的方法。但是我遇到一个特殊方面的问题,因为我想计算每行绝对值的总和,然后返回4行中的最大值。因此,例如在我的代码中,最大值将是rowTotalTwo,其总和为20。

2 个答案:

答案 0 :(得分:0)

纯粹和基本的java ...

public static void main(String[] args) {
    int[][] num = {// 0  1  2  3
            {4, 6, 9, 3},
            {6, 2, 4, 1},
            {8, 3, 7, 9}
    };
    int[] total = new int[num[0].length];

    for (int i=0; i < total.length;i++){
        total[i] = 0;
    }


    for (int i = 0; i < num.length; i++) {
        for (int j = 0 ; j < total.length; j++) {
            total[j] += num[i][j];
        }
    }

    for (int i=0; i < total.length;i++){
        total[i] = Math.abs(total[i]);
    }

    int max = 0;
    for (int i=0; i < num.length;i++){
        if (max < total[i])
            max = total[i];
    }
    System.out.println("max : " + max);
}

使用Collection

int max = (int)Collections.max(Arrays.asList(ArrayUtils.toObject(total)));

使用流

int max = Arrays.stream(total).max().getAsInt();

答案 1 :(得分:0)

你可以这样做,在这种情况下你不必改变你的代码

Math.max(Math.max(Math.abs(rowTotalZero), Math.abs(rowTotalOne)), Math.max(Math.abs(rowTotalTwo), Math.abs(rowTotalThree)));