如何在不使用循环的情况下在 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 - Arrays.fill 在 Java 中使用多维数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7118178/