首页 > 解决方案 > 如何在java列中获取二维数组中的最大和最小元素我已经得到了行的输出

问题描述

public class colum {
    public static void main(String[] args) {
        int[][] data = { 
                { 3,  2,    5,-45 }, 
                { 1,  4,    4, -8 }, 
                { 9,  6, -100,  -2 },
                {-10, 3,    1,  -2 }};


        for (int row = 0; row < data.length; row++) {

            int large = data[row][0], 
                small = data[row][0];

            for (int col = 0; col < data[row].length; col++) {
                if (large < data[row][col]) {
                    large = data[row][col];

                }if (small > data[row][col]) {
                    small = data[row][col];
                }
            }

            System.out.println("\nlargest values:" + large);
            large = 0;
            System.out.println("smallest values:" +small);
            small = 0;

        }
    }
}

输出是:

最大值:5 最小值:-45

最大值:4 最小值:-8

最大值:9 最小值:-100

最大值:3 最小值:-10

标签: javamultidimensional-array

解决方案


切换循环的顺序以找到按列的最小值和最大值:

for (int col = 0; col < data[0].length; col++) { // assuming all row have same length

    int large = data[0][col], 
        small = data[0][col];

    for (int row = 1; row < data.length; row++) {
        if (large < data[row][col]) {
            large = data[row][col];

        }
        if (small > data[row][col]) {
            small = data[row][col];
        }

    }
    System.out.println("\nlargest values:" + large);
    System.out.println("smallest values:" +small);
}

输出:

largest values:9
smallest values:-10

largest values:6
smallest values:2

largest values:5
smallest values:-100

largest values:-2
smallest values:-45

推荐阅读