可以在二维数组中存储表格数据。在数组声明的每个维度的一对括号[]
来声明多维数组。
例如,如下所示定义int
类型的二维数组:
int[][] table;
这里,table
是一个引用变量,可以保存对int
类型的二维数组的引用。下面创建具有三行和两列的int
类型二维数组,如下所示:
table = new int[3][2];
多维数组中每个维度的索引都是从零开始的。可使用table[rownumber] [columnNumber]
访问table
数组的每个元素。行号(rownumber
)和列号(columnNumber
)始终从0
开始。
例如,以下代码将一个值 32
分配给表数组中的第一行和第二列,如图所示:
table[0][1] = 32;
可以将值1
分配给第三行和第一列,如下所示:
table[2][0] = 1;
必须在创建多维数组时指定至少第一级数组的维度。例如,
table = new int[3][];
此语句仅创建第一级数组。此时仅存在table[0]
,table[1]
和table[2]
,它们都是引用 null
值。 table.length
的值为3
。table[0]
,table[1]
和table[2]
是int
类型的数组,也可以将它们赋值为 -
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可以为每行创建一个具有不同列数的二维数组。这样的数组称为粗糙数组。
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]);
}
}
上面的代码生成以下结果。
1 2
3
4 5 6
访问多维数组的元素
通常,使用嵌套for
循环来填充多维数组。用于处理多维数组的for
循环次数等于数组中的维数。
以下代码显示了如何访问多维数组的元素
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();
}
}
}
上面的代码生成以下结果。
0 1
1
2 3 4
初始化多维数组
可以在声明时或在创建时提供值列表来初始化多维数组中的每个元素。
每个维度的初始值数量将决定数组中每个维度的长度。级别的值列表用大括号括起来。对于二维数组,每行的值列表都包含在一对大括号中,如下所示:
int[][] arr = {{10, 20, 30},
{1, 2},
{2, 3, 4, 5}};
在上面的语句中创建一个具有三行的二维数组。以下代码显示如何初始化一个二维String
类型的数组:
String[][] acronymlist = {{"A", "a"},
{"B", "b"},
{"C", "c"}};
可以在创建多维数组时初始化多维数组的元素。如下代码所示 -
int[][] arr = new int[][]{{1, 2}, {3,4,5}};