[英]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.