将所有数组元素重新初始化为零java

时间:2015-06-27 13:35:29

标签: java arrays initialization

我有一个二维数组,需要在每次迭代后重新初始化为0 什么是最好(最快)的方法。

  • 使用for循环以传统方式执行
  • 或者通过执行myarray=new long[size][size];

    再次为其分配内存
    long myarray[][]=new long[size][size]
    for(.....)
    {
         //..do something with myarray
         //..set all elements of myarray to 0 for next iteration
    }
    

PS-我需要它在编码竞赛中进行优化。

2 个答案:

答案 0 :(得分:1)

仅供参考,您不需要明确将所有元素设置为零。 myarray=new long[size][size]将在元素中填充零的默认值。见 Initial Values of Variables

  

每个类变量,实例变量或数组组件在创建时都使用默认值进行初始化(§15.9,§15.10.2):

     
      
  • 对于类型byte,默认值为零,即(byte)0的值。

  •   
  • 对于类型short,默认值为零,即(短)0的值。

  •   
  • 对于类型int,默认值为零,即0。

  •   
  • 对于类型long,默认值为零,即0L

  •   

如果尺寸很大,设置值会更有效:

for (int i = 0; i < myarray.length; i++) {
    for (int j = 0; j < myarray[i].length; j++) {
        myarray[i][j] = 0;
    }
}

答案 1 :(得分:1)

您可以使用Arrays.fill功能:

for (long[] subarray : myarray) {
  Arrays.fill(subarray, 0);
}