繁体   English   中英

Java Arrays.fill()

[英]Java Arrays.fill()

如何填充多维数组?

int[][] array = new int[4][6]; 
Arrays.fill(array, 0);

我尝试过,但它不起作用。

以下是使用for-each的建议:

for (int[] row : array)
    Arrays.fill(row, 0);

您可以通过执行验证它是否有效

System.out.println(Arrays.deepToString(array));

旁注:由于您在填充之前创建了数组,因此实际上不需要填充(只要您真的想要填充零)。 Java将所有数组元素初始化为相应的默认值,对于int它为0 :-)

试试这个:

for(int i = 0; i < array.length; i++) {
    Arrays.fill(array[i], 0);
}

我没有测试它,但我认为它应该工作。

由于数组实际上是一个数组数组,因此您可以尝试遍历每一行并为每一行单独填充。

首先,请注意0是int数组的默认值,因此您不必用0填充。

如果你希望你的数组保持真正的多维,你需要一个循环。

public static void fill(int[][] array, int element) {
    for(int[] subarray : array) {
        Arrays.fill(subarray, element);
    }
}

如果您只需要一个填充了相同元素的2D数组,并且以后不想更改子数组,则可以使用此技巧:

public static int[][] create2DArray(int length, int subLength, int element) {
    int[] subArray = new int[subLength];
    Arrays.fill(subArray, element);
    int[][] array = new int[length][];
    Arrays.fill(array, subArray);
    return array;
}

这类似于高维数组。

看到这样:

Arrays.fill(array[0], 0);
Arrays.fill(array, array[0]);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM