2011-03-23 72 views
1

Java中是否有预定义的函数来将数组中的所有整数设置为指定值?如何在Java中初始化数组中的所有整数?

假设给出了以下数组:byte start[][][] = new byte[MAXSUM][rows][N * 2];有没有比3 loops更好的方式将它初始化为一些常量,而不是0

可以使用Arrays.fill()初始化一个数组的值超过1的值吗?

回答

6

不,没有内置的,但它不应该看起来很丑陋与嵌套for循环。

public static void multiDimensionalFill(byte[][][] start, byte value) { 
    for(byte[][] firstdim : start) 
     for(byte[] seconddim : firstdim) 
      Arrays.fill(seconddim, value); 
} 
+0

相比于C/C++'memset的(开始,-1,的sizeof(开始))'一个班轮它看起来笨重... – Leonid 2011-03-23 01:33:55

+1

@Leonid不幸的是,Java不是C或C++,而且您无权访问数组引用的低级内存。但是,您可以在项目中简单地创建一些静态实用程序方法,然后在需要初始化某些内容时调用“multiDimensionalFill”方法 - 解决问题。 – 2011-03-23 01:36:49

+0

好吧,没有人会阻止你使用一维数组,只需调用Arrays.fill并进行每次访问从1维到n维的转换。这是交换一个较小的不便之处,但会“工作”;) – Voo 2011-03-23 01:39:42

1

没有更好的内置方式来初始化多维数组,而不是遍历值。

0

Arrays.fill()仅适用于一个维数组