You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Java中如何获取二维数组每列的最大值?

获取Java二维数组每列的最大值

没问题,我懂你现在的困扰——原来的代码是按行遍历找最大值,要实现按列取最大值,咱们只需要调整一下循环的遍历顺序就行,思路其实很简单:

核心思路

原来的循环外层是行索引,内层是列索引;现在要反过来,外层遍历列索引,内层遍历所有行的对应列元素,这样就能逐个找出每列的最大值了。

实现代码

这里给你写了完整可运行的代码,完全符合你的需求:

public class ColumnMaxExample {
    public static void main(String[] args) {
        int[][] test = {{3, 9, 3, 5}, {4, 19, 4, 9}, {2, 10, 5, 6}};
        
        // 确定二维数组的列数(假设所有行的列数一致)
        int columnCount = test[0].length;
        int[] answer = new int[columnCount];
        
        // 外层循环:遍历每一列
        for (int col = 0; col < columnCount; col++) {
            // 初始化当前列的最大值为第一行的对应列元素
            int currentMax = test[0][col];
            // 内层循环:遍历所有行的当前列元素
            for (int row = 1; row < test.length; row++) {
                if (test[row][col] > currentMax) {
                    currentMax = test[row][col];
                }
            }
            // 将当前列的最大值存入结果数组
            answer[col] = currentMax;
        }
        
        // 打印验证结果
        for (int maxVal : answer) {
            System.out.print(maxVal + " "); // 输出:4 19 5 9
        }
    }
}

代码说明

  • 首先获取列数columnCount,因为结果数组的长度和列数一致;
  • 外层循环col从0到列数-1,代表当前处理的列;
  • 内层循环row从第1行开始(已经用第0行的元素初始化了最大值),逐个比较当前列的所有行元素,更新最大值;
  • 最后把每列的最大值依次存入answer数组,就得到了你想要的结果。

额外提示

如果你的二维数组可能存在行长度不一致或者空数组的情况,记得加一些空指针判断,比如先检查test != null、test.length > 0和test[0] != null,避免运行时出错。

内容的提问来源于stack exchange,提问作者character

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.29 08:18:13