java - Java 中的 Arrays.fill 多维数组

标签 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 - Java 中的 Arrays.fill 多维数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56845616/

相关文章:

c - 如何在 C 中的父进程和子进程之间共享结构数组?

c# - 是否可以将 Canvas 中的形状添加到二维数组,其中二维数组位置是下方的网格控件单元格的位置?

java - 对之前在 Sonar 中取消引用的值的第 114 行的状态进行 Nullcheck

java - 服务器不响应使用 Java 的 HTTP/1.1 客户端中的并发请求

java - 扫描仪返回未找到行

C++,函数将数组作为字符串返回

javascript - 如何在 Javascript 中从数组中查找上一个或下一个元素?

java - 在二维数组的边界周围制作一个星形的正方形

php - fatal error : Cannot unset string offsets error?

java - java从url中减去特定参数