Java矩阵初始化

科雷根

我已经用 Java 编程 3 年了,我知道如何初始化矩阵,但我一直很想知道这之间的区别

double[][] matrix = new double[rows][];
for (int i = 0; i < rows; i++) {
    matrix[i] = new double[columns];
    for (int j = 0; j < columns; j++) {
        matrix[i][j] = 0.0d;
    }
}

和这个

double[][] matrix = new double[rows][columns];
for (int i = 0; i < rows; i++) {
    for (int j = 0; j < columns; j++) {
        matrix[i][j] = 0.0d;
    }
}

它们似乎以相同的方式初始化,但有人告诉我第一种方式更好,但我不知道为什么。谢谢你的回答!

奥列克西·扎古尔斯基

我不认为一种方法可以严格归类为比另一种更好的方法。根据您的用例,您将使用两者之一。

例如,第一种方法的好处:您可以拥有matrix不同大小的列。此外,matrix初始化被推迟(未分配内存)。例如:

double[][] matrix = new double[2][]; // memory is not allocated yet
matrix[0] = new double[] {1.0};
matrix[1] = new double[] {1.0, 2.0};

另一方面,matrix当您知道matrix具有固定维度 ( rows& columns),第二种方法允许在一个步骤中创建和初始化

double[][] matrix = new double[2][2]; // memory is allocated for double 2x2 matrix

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章