[英]How to fill two-dimensional array using java enhanced loop?
基本上,我正在嘗試這個,但這只留下填充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 = '~';
Thirler解釋了為什么這不起作用。 但是,您可以使用Arrays.fill
來幫助您初始化數組:
char[][] array = new char[10][10];
for (char[] row : array)
Arrays.fill(row, '~');
來自Sun Java Docs :
那么什么時候應該使用for-each循環?
任何時候你都可以。 它真的美化了你的代碼。 不幸的是,你無法在任何地方使用它。 例如,考慮一下expurgate方法。 程序需要訪問迭代器才能刪除當前元素。 for-each循環隱藏了迭代器,因此您無法調用remove。 因此,for-each循環不可用於過濾。 類似地,它不適用於需要在遍歷時替換列表或數組中的元素的循環 。
這是因為element
char不是指向數組內存位置的指針,它是字符的副本,因此更改它只會更改副本。 因此,在引用數組和對象(非簡單類型)時,您只能使用此表單。
賦值僅改變局部變量element
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.