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

新手上路,请多包涵

如何在不使用循环的情况下用 Java 填充多维数组?我试过了:

 double[][] arr = new double[20][4];
Arrays.fill(arr, 0);

这导致 java.lang.ArrayStoreException: java.lang.Double

原文由 Caroline 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 935
1 个回答

这是因为A — 0.0 double[][] 是一个阵列 double[] double[] vector = 0.0 .事实上,Java 没有真正的多维数组。

碰巧, 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);

原文由 aioobe 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题