如何声明一个二维数组,该数组是两个空的二维数组之和

时间:2019-07-18 18:22:07

标签: java multidimensional-array addition is-empty

我是Java的初学者。

在练习中,我应该编写一个方法,其中必须添加两个2D数组。我的问题是,如果数组A和B为空,我的解决方案不会返回空数组C,而是会产生ArrayIndexOutOfBoundsException。

为清楚起见,我将在下面发布问题描述:

“编写一个名为matrixAdd的方法,该方法接受一对二维整数数组作为参数,将这些数组视为2D矩阵并将其相加,返回结果。两个矩阵A和B的总和为矩阵C,其中对于第i行和第j列,每行Cij = Aij + Bij。您可以假设作为参数传递的数组具有相同的维数。”

到目前为止,我已经提出了以下解决方案:

public static int[][] matrixAdd(int[][] a, int[][] b) {
    int[][] c = new int[a.length][a[0].length];
    for (int row = 0; row < a.length; row++) {
        for (int col = 0; col < a[0].length; col++) {
            c[row][col] = a[row][col] + b[row][col];
        }
    }
    return c;
}

如果A和B都填充了值,这是可行的,但是如果A和B为空,我得到ArrayIndexOutOfBoundsException --Edit:第2行-。应该返回一个空数组。

-编辑: 最早的评论指出,无法访问导致异常的[0] .length。

但是我怎么能声明c的维呢? 即如何在不使用a [0] .length的情况下声明数组c

还是我甚至必须在代码中声明c

顺便说一句,添加if (a == null || a.length == 0) { return new int[] {}; }if (a == null || a.length == 0) { return new int[][]; }的建议没有用,但感谢您的尝试。

0 个答案:

没有答案