1.鋸齒狀陣列
作為 Java 程序員,您不僅可以交換二維數組的行,還可以根據需要構造數組。
假設您希望二維數組的第一行的長度為10
,並且您希望第二行的長度為50
。我們能做到嗎?我們可以。
首先,我們需要創建一個“容器的容器”——這是第一個數組,它將存儲對行數組的引用。這是如何完成的:
int[][] name = new int[height][];
您只需省略第二個維度,Java 機器就會創建一個容器的容器。這是執行此代碼後內存中的內容:

而且,好吧,您已經知道如何創建一維數組🙂
這就是生成的代碼的樣子:
|
二維數組 第零行是一個 10 元素數組第一行是一個 50 元素 數組 |
我們剛剛創建了一個所謂的“交錯數組”。
而如果我們現在想在屏幕上顯示這個數組的所有元素,那麼數組的length
屬性就會派上用場:畢竟數組的行的長度是不同的。
順便問一下,在我們的示例中,您如何找到“容器的容器”的長度?它也是一個數組對象,這意味著它有一個長度。正確答案是matrix.length
。
組成我們行的數組怎麼樣?matrix[0].length
2. 使用二維數組
假設你想顯示一個二維數組。你是怎樣做的?
我們的代碼看起來像這樣:
|
創建一個數組 用值填充數組 在數組的行上迭代的外循環。 迭代單行單元格的內部循環。 |
您需要兩個嵌套循環。第一個我們稱為outer,第二個稱為inner。
在外部循環(i
變量)中,我們依次遍歷構成二維數組的所有行(數組)。每個值i
對應於具有該索引的一行。
在內部循環(j
變量)中,我們遍歷行中的所有單元格。多虧了內部循環,由一個一維數組的值組成的一行將顯示在屏幕上。
這是將顯示的內容:
處理數組的一行 |
|
處理數組的兩行 |
|
處理數組的三行 |
|
3. 多維數組
還有一個關於數組的有趣事實,您可能已經猜到了。如果你能做一個二維數組,那麼你能做一個三維數組嗎?
是的,您可以創建任意維度的數組。這樣的數組稱為“多維”。
只是為了好玩,讓我們創建一個具有 4 個維度的多維數組。
int[][][][] matrix = new int[2][3][4][5];
這段代碼太簡單了吧?
如果手動創建呢?
int[][][][] matrix;
matrix = new int[2][][][]; // Create a 2-element array of references to references to references
for (int i = 0; i < matrix.length; i++)
{
matrix[i] = new int[3][][]; // Create a 3-element array of references to references
for (j = 0; j < matrix[i].length; j++)
{
matrix[i][j] = new int[4][]; // Create a 4-element array of references
for (k = 0; k < matrix[i][j].length; k++)
matrix[i][j][k] = new int[5]; // Create 5-element arrays of integers
}
}
這只是創建數組!然後你還需要以某種方式使用它。
獎勵任務:編寫顯示三維數組中所有值的代碼。
GO TO FULL VERSION