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

时间:2010-04-14 09:24:14

标签: java arrays

基本上,我正在尝试这个,但这只留下填充zeros的数组。我知道如何用正常的for循环填充它,例如

for (int i = 0; i < array.length; i++)

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

char[][] array = new char[x][y];
for (char[] row : array)
    for (char element : row)
        element = '~';

4 个答案:

答案 0 :(得分:13)

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

    char[][] array = new char[10][10];
    for (char[] row : array)
        Arrays.fill(row, '~');

答案 1 :(得分:7)

来自Sun Java Docs

  

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

     

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

答案 2 :(得分:4)

这是因为element char不是指向数组内存位置的指针,它是字符的副本,因此更改它只会更改副本。因此,在引用数组和对象(非简单类型)时,您只能使用此表单。

答案 3 :(得分:0)

该作业仅改变局部变量element

相关问题