想象的陣列定義如下:查找2D陣列的寬度具有零長度
int n = 10;
int[][] arr = new int[0][n];
比方說這個數組傳遞到幾個方法不保留ñ。我們能從這個數組中獲得n嗎?
arr [0] .length肯定不起作用。
想象的陣列定義如下:查找2D陣列的寬度具有零長度
int n = 10;
int[][] arr = new int[0][n];
比方說這個數組傳遞到幾個方法不保留ñ。我們能從這個數組中獲得n嗎?
arr [0] .length肯定不起作用。
由於此數組中的每個第二級都是不同的,所以您將無法找出答案。
這樣考慮:
int[][] a = new int[10][20];
a[0] = new int[5];
a[1] = new int[8];
for(int[] x : a) {
System.err.println(x.length);
}
,你會看到,每個X成分實際上是一個指針,它指向可以設置和獨立地mondified另一個INT []對象。通過做
int[][] a = new int[0][n];
你從來沒有真正產生任何的指針,你不要在那裏創建任何Y分量的。
我們可以從這個數組中獲得n嗎?
號
我想它的方式是這樣的。該生產線
int[][] arr = new int[a][b];
是基本相同
int[][] arr = new int[a][];
for (int i = 0; i < a; i++)
arr[i] = new int[b];
如果a == 0
,則for
循環什麼也不做,所以b
值無關緊要。
您是打算對此做些什麼或僅僅是個人的好奇心?如果您將其更改爲'new int [1] [n];'那麼您可以使用'arr [0] .length'獲得n。這隻有在你使用1或者指定一個你知道長度爲「n」的單元格的時候。正如其他人指出的那樣,「n」可以在不同的細胞之間有所不同。創建n的「行」並不真正做任何事情。 – Monkeygrinder
你會介意接受一個答案,如果它真的幫助你? – rmalchow