如何使用java增强循环填充二维数组?

evg*_*iuz 7 java arrays

基本上,我正在尝试这个,但这只留下阵列填充zeros.我知道如何填充普通for循环,如

for (int i = 0; i < array.length; i++)
Run Code Online (Sandbox Code Playgroud)

但为什么我的变体不起作用?任何帮助,将不胜感激.

char[][] array = new char[x][y];
for (char[] row : array)
    for (char element : row)
        element = '~';
Run Code Online (Sandbox Code Playgroud)

bru*_*nde 13

Thirler解释了为什么这不起作用.但是,您可以使用它Arrays.fill来帮助您初始化数组:

    char[][] array = new char[10][10];
    for (char[] row : array)
        Arrays.fill(row, '~');
Run Code Online (Sandbox Code Playgroud)


cod*_*ict 7

来自Sun Java Docs:

那么什么时候应该使用for-each循环?

任何时候你都可以.它真的美化了你的代码.不幸的是,你无法在任何地方使用它.例如,考虑一下expurgate方法.程序需要访问迭代器才能删除当前元素.for-each循环隐藏了迭代器,因此您无法调用remove.因此,for-each循环不可用于过滤.类似地,它不适用于需要在遍历时替换列表或数组中的元素的循环.