Arrays.fill with multidimensional array in Java
2022-08-31 11:41:17
如何在不使用循环的情况下在Java中填充多维数组?我试过了:
double[][] arr = new double[20][4];
Arrays.fill(arr, 0);
这导致java.lang.ArrayStoreException: java.lang.Double
如何在不使用循环的情况下在Java中填充多维数组?我试过了:
double[][] arr = new double[20][4];
Arrays.fill(arr, 0);
这导致java.lang.ArrayStoreException: java.lang.Double
这是因为 a 是您无法分配到的数组(就像执行操作一样)。事实上,Java没有真正的多维数组。double[][]
double[]
0.0
double[] vector = 0.0
碰巧的是,0.0
是 Java 中双精度值的默认值,因此当您从 中获取矩阵时,矩阵实际上已经用零填充。但是,如果你想填充它,比如说,你可以执行以下操作: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);
double[][] arr = new double[20][4];
Arrays.fill(arr[0], 0);
Arrays.fill(arr[1], 0);
Arrays.fill(arr[2], 0);
Arrays.fill(arr[3], 0);
Arrays.fill(arr[4], 0);
Arrays.fill(arr[5], 0);
Arrays.fill(arr[6], 0);
Arrays.fill(arr[7], 0);
Arrays.fill(arr[8], 0);
Arrays.fill(arr[9], 0);
Arrays.fill(arr[10], 0);
Arrays.fill(arr[11], 0);
Arrays.fill(arr[12], 0);
Arrays.fill(arr[13], 0);
Arrays.fill(arr[14], 0);
Arrays.fill(arr[15], 0);
Arrays.fill(arr[16], 0);
Arrays.fill(arr[17], 0);
Arrays.fill(arr[18], 0);
Arrays.fill(arr[19], 0);