如何使用java增强循环填充二维数组?
基本上,我正在尝试这个方法,但这只会让数组充满如何使用java增强循环填充二维数组?,java,arrays,Java,Arrays,基本上,我正在尝试这个方法,但这只会让数组充满零。我知道如何用正常的来填充循环,例如 for (int i = 0; i < array.length; i++) 这是因为元素字符不是指向数组中内存位置的指针,它是字符的副本,因此更改它只会更改副本。因此,您只能在引用数组和对象(而不是简单类型)时使用此表单 赋值仅改变局部变量元素: 那么什么时候应该使用for-each循环 任何时候都可以。它真的美化了你的代码。不幸的是,您不能在任何地方使用它。例如,考虑排除方法。程序需要访问迭代器才能
零。我知道如何用正常的来填充循环,例如
for (int i = 0; i < array.length; i++)
这是因为元素
字符不是指向数组中内存位置的指针,它是字符的副本,因此更改它只会更改副本。因此,您只能在引用数组和对象(而不是简单类型)时使用此表单 赋值仅改变局部变量元素
:
那么什么时候应该使用for-each循环
任何时候都可以。它真的美化了你的代码。不幸的是,您不能在任何地方使用它。例如,考虑排除方法。程序需要访问迭代器才能删除当前元素。for-each循环隐藏迭代器,因此不能调用remove。因此,for-each循环不可用于过滤类似地,它不适用于需要在遍历列表或数组时替换其中元素的循环
已经解释了为什么这不起作用。但是,您可以使用数组。填充来帮助您初始化数组:
char[][] array = new char[10][10];
for (char[] row : array)
Arrays.fill(row, '~');
@Shark:数组不提供迭代器(除非您使用arrays.asList()
)包装它们),但是普通的for循环可以正常工作。
char[][] array = new char[10][10];
for (char[] row : array)
Arrays.fill(row, '~');