在java中乘以数组和2-d数组

时间:2016-11-15 14:54:12

标签: java arrays product

我正在尝试在java上将数组和2d数组相乘并且我的程序编译但是仍然会返回错误java.lang.NullPointerException;当我尝试输入任何内容时为null。到目前为止,这是我的代码:

static double[][] productWithDiagonal(double[] a, double[][] b)
{
    double[][] c = new double[3][];

    { 
        for (int i = 0; i < b.length; ++i) {
            for (int j = 0; j < b[1].length; ++j) {    
                c[i][j] = a[j] * b[i][j];
                }
            }
        }
    return c;
    }

由于

1 个答案:

答案 0 :(得分:2)

这里:

double[][] c = new double[3][];

仅实例化&#34;行&#34;。你需要像

这样的东西
double[][] c = new double[3][3];

或者更有用

... c = new double[b.length][b[0].length];

代替。但是要确定:那些数字很重要;你应该确保 b 例如是一个&#34;常规矩形&#34;形状矩阵 - 以便所有行具有相同的列数。当然, a 也应该与b具有相同的列数。您可以在方法的开头添加此类检查;确保 a b 的形状实际上允许这种乘法!

你看,在Java中,一个双暗的数组只不过是一个包含另一个数组的数组。您的初始代码只会启动&#34;外部&#34;数组,离开&#34;内部&#34;数组在 null