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

Java中如何合并同尺寸二维数组并取对应位置最大值?

解决二维数组对应位置取最大值的初始化问题

你当前的代码会抛出NullPointerException,因为bigArray的每一行(子数组)未完成初始化,直接访问bigArray[i][j]会触发空指针错误。

修正后的完整代码

int[][] array1 = { {1,3},{11,12,13}, {6,3,32} };
int[][] array2 = { {1,4}, {1,2,3}, {21,7,23} };

int[][] bigArray = new int[array1.length][];
for (int i = 0; i < array1.length; i++) {
    // 初始化当前行的子数组,长度与array1/array2对应行一致
    bigArray[i] = new int[array1[i].length];
    for (int j = 0; j < array1[i].length; j++) {
        bigArray[i][j] = Math.max(array1[i][j], array2[i][j]);
    }
}

关键说明

  • 初始化bigArray时,外层括号填array1.length确定总行数,内层括号留空是正确的操作——因为子数组长度不固定,无法提前统一指定列维度。
  • 必须在遍历每一行的循环(i循环)中,单独初始化bigArray[i],长度设为array1[i].length(题目明确两个数组尺寸始终相同,用array2[i].length也完全可行)。
  • 完成子数组初始化后,再遍历列维度(j循环)赋值对应位置的最大值,就能得到预期结果{{1,4},{11,12,13},{21,7,32}}。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 18:10:32