java - Arrays.fill 在 Java 中使用多维数组

标签 java arrays multidimensional-array

如何在不使用循环的情况下在 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/

相关文章:

javascript - 减少 switch 语句中的数组 (AngularJS)

java - 使用 Edittext 更改 Textview 的文本?

java - Eclipse -vm 选项问题

c++ - 如何使模板重新推导出已经衰减为 const char* 的 const char[N] "mychar"?

php - 使用 php 将数组放入带有 SimpleXMLobject 的表中

java - 除法时的有损转换(long 到 int)

java - 比较行和列中的元素,在本例中为 1 和 0

python - 在 numpy 中创建方阵的 3D 数组

java - 使用 GridBagLayout 表示动态仪表板的布局

java - 用于内部 REST 通信的 OAuth + spring security