我們可以在二維數(shù)組中存儲表格數(shù)據(jù)。
使用數(shù)組聲明中每個維度的一對括號[]來聲明多維數(shù)組。
例如,如下所示定義int的二維數(shù)組:
int[][] table;
這里,table是一個引用變量,可以保存對int的二維數(shù)組的引用。
可以創(chuàng)建具有三行和兩列的二維數(shù)組int,如下所示:
table = new int[3][2];
多維數(shù)組中每個維度的索引都是從零開始的。
表數(shù)組的每個元素可以作為表[rownumber] [columnNumber]訪問。
行號和列號始終從零開始。
例如,以下代碼將值分配給表數(shù)組中的第一行和第二列,如圖所示:
table[0][1] = 32;
您可以將值1分配給第三行和第一列,如下所示:
table[2][0] = 1;
我們必須在創(chuàng)建多維數(shù)組時指定至少第一級數(shù)組的維度。
例如:
table = new int[3][];
我們必須在創(chuàng)建多維數(shù)組時指定至少第一級數(shù)組的維度。
此時僅存在表[0],表[1]和表[2]。
他們指的是null。 table.length的值為3。
table [0],table [1]和table [2]是int數(shù)組,我們可以將它們賦值為
table[0] = new int[2]; // Create two columns for row 1 table[1] = new int[2]; // Create two columns for row 2 table[2] = new int[2]; // Create two columns for row 3
Java可以為每行創(chuàng)建一個具有不同列數(shù)的二維數(shù)組。這樣的數(shù)組稱為粗糙數(shù)組。
以下代碼顯示了如何創(chuàng)建一個不規(guī)則數(shù)組。
public class Main { public static void main(String[] args) { // Create a two-dimensional array of 3 rows int[][] raggedArray = new int[3][]; // Add 2 columns to the first row raggedArray[0] = new int[2]; // Add 1 column to the second row raggedArray[1] = new int[1]; // Add 3 columns to the third row raggedArray[2] = new int[3]; // Assign values to all elements of raggedArr raggedArray[0][0] = 1; raggedArray[0][1] = 2; raggedArray[1][0] = 3; raggedArray[2][0] = 4; raggedArray[2][1] = 5; raggedArray[2][2] = 6; // Print all elements. One row at one line System.out.println(raggedArray[0][0] + "\t" + raggedArray[0][1]); System.out.println(raggedArray[1][0]); System.out.println(raggedArray[2][0] + "\t" + raggedArray[2][1] + "\t" + raggedArray[2][2]); } }
上面的代碼生成以下結(jié)果。
通常,使用嵌套for循環(huán)來填充多維數(shù)組。
用于處理多維數(shù)組的for循環(huán)數(shù)等于數(shù)組中的維數(shù)。
以下代碼顯示了如何訪問多維數(shù)組的元素。
public class Main { public static void main(String[] args) { int[][] myArray = new int[3][]; myArray[0] = new int[2]; myArray[1] = new int[1]; myArray[2] = new int[3]; // Populate the ragged array using for loops for (int i = 0; i < myArray.length; i++) { for (int j = 0; j < myArray[i].length; j++) { myArray[i][j] = i + j; } } // Print the array using for loops for (int i = 0; i < myArray.length; i++) { for (int j = 0; j < myArray[i].length; j++) { System.out.print(myArray[i][j] + "\t"); } // Add a new line after each row is printed System.out.println(); } } }
上面的代碼生成以下結(jié)果。
我們可以通過在聲明時或在創(chuàng)建時提供值列表來初始化多維數(shù)組的元素。
每個維度的初始值數(shù)量將決定數(shù)組中每個維度的長度。
級別的值的列表用大括號括起來。
對于二維數(shù)組,每行的值列表都包含在一對大括號中,如下所示:
int[][] arr = {{10, 20, 30}, {1, 2}, {2, 3, 4, 5}};
此語句創(chuàng)建一個具有三行的二維數(shù)組。
以下代碼顯示如何初始化一個二維String數(shù)組:
String[][] acronymlist = {{"A", "a"}, {"B", "b"}, {"C", "c"}};
我們可以在創(chuàng)建多維數(shù)組時初始化多維數(shù)組的元素。
int[][] arr = new int[][]{{1, 2}, {3,4,5}};
更多建議: