如何在不使用循环的情况下在 Java 中填充多维数组?我试过:
double[][] arr = new double[20][4];
Arrays.fill(arr, 0);
这会导致java.lang.ArrayStoreException:java.lang.Double
最佳答案
这是因为 double[][]
是一个 double[]
数组,您不能将 0.0
分配给它(它就像执行double[] vector = 0.0
)。事实上,Java 没有真正的多维数组。
事实上,0.0
是 Java 中 double 的默认值,因此当您从 new 获取矩阵时,矩阵实际上已经填充了零
。但是,如果您想用 1.0
填充它,您可以执行以下操作:
我不相信 API 提供了一种不使用循环即可解决此问题的方法。不过,使用 for-each 循环就足够简单了。
double[][] matrix = new double[20][4];
// Fill each row with 1.0
for (double[] row: matrix)
Arrays.fill(row, 1.0);
关于java - Java 中的 Arrays.fill 多维数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56845616/