Java中是否有预定义的函数来将数组中的所有整数设置为指定值?如何在Java中初始化数组中的所有整数?
假设给出了以下数组:byte start[][][] = new byte[MAXSUM][rows][N * 2];
有没有比3 loops
更好的方式将它初始化为一些常量,而不是0
?
可以使用Arrays.fill()
初始化一个数组的值超过1的值吗?
Java中是否有预定义的函数来将数组中的所有整数设置为指定值?如何在Java中初始化数组中的所有整数?
假设给出了以下数组:byte start[][][] = new byte[MAXSUM][rows][N * 2];
有没有比3 loops
更好的方式将它初始化为一些常量,而不是0
?
可以使用Arrays.fill()
初始化一个数组的值超过1的值吗?
不,没有内置的,但它不应该看起来很丑陋与嵌套for循环。
public static void multiDimensionalFill(byte[][][] start, byte value) {
for(byte[][] firstdim : start)
for(byte[] seconddim : firstdim)
Arrays.fill(seconddim, value);
}
没有更好的内置方式来初始化多维数组,而不是遍历值。
Arrays.fill()仅适用于一个维数组
相比于C/C++'memset的(开始,-1,的sizeof(开始))'一个班轮它看起来笨重... – Leonid 2011-03-23 01:33:55
@Leonid不幸的是,Java不是C或C++,而且您无权访问数组引用的低级内存。但是,您可以在项目中简单地创建一些静态实用程序方法,然后在需要初始化某些内容时调用“multiDimensionalFill”方法 - 解决问题。 – 2011-03-23 01:36:49
好吧,没有人会阻止你使用一维数组,只需调用Arrays.fill并进行每次访问从1维到n维的转换。这是交换一个较小的不便之处,但会“工作”;) – Voo 2011-03-23 01:39:42