我已经用 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] 删除。
我来说两句