Java二维数组的用法(附带实例)
Java 语言中并没有真正的多维数组,它们被实现为数组的数组。本节以最常用的二维数组为例,讲解 Java 多维数组的基本用法。
例如,以下是声明和实现二维整数数组的方法:

图 1 二维数组
要访问一个元素,请使用两对方括号:
你甚至可以交换一整行,例如:
如果未提供初始值,则必须使用 new 运算符并指定行数和列数:
【实例】存储帕斯卡三角形。
2) 然后使用循环构造每一行,并填充:
3) 要遍历一个二维数组,需要使用两个循环,一个用于行,另一个用于列:
例如,以下是声明和实现二维整数数组的方法:
int[][] square = { { 16, 3, 2, 13 }, { 5, 10, 11, 8 }, { 9, 6, 7, 12 }, { 4, 15, 14, 1} };从技术上讲,这是一个一维的 int[] 数组,见下图:

图 1 二维数组
要访问一个元素,请使用两对方括号:
int element = square[1][2]; // Sets element to 11其中,第一个索引选择行数组 square[1],第二个索引表示从该行中选取元素。
你甚至可以交换一整行,例如:
int[] temp = square[0]; square[0] = square[1]; square[1] = temp;
如果未提供初始值,则必须使用 new 运算符并指定行数和列数:
int[][] square = new int[4][4]; // First rows, then columns在之后的应用场景中,行数组的每一行都由一个数组填充。这里并不要求行数组具有相等的长度。
【实例】存储帕斯卡三角形。
1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 ...1) 首先构造一个 n 行的数组:
int[][] triangle = new int[n][];
2) 然后使用循环构造每一行,并填充:
for (int i = 0; i < n; i++) { triangle[i] = new int[i + 1]; triangle[i][0] = 1; triangle[i][i] = 1; for (int j = 1; j < i; j++) { triangle[i][j] = triangle[i - 1][j - 1] + triangle[i - 1][j]; } }
3) 要遍历一个二维数组,需要使用两个循环,一个用于行,另一个用于列:
for (int r = 0; r < triangle.length; r++) { for (int c = 0; c < triangle[r].length; c++) { System.out.printf("%4d", triangle[r][c]); } System.out.println(); }也可以使用增强 for 循环:
for (int[] row : triangle) { for (int element: row) { System.out.printf("%4d", element); } System.out.println(); }这些循环适用于矩阵数组以及具有不同行长度的数组。
注意,Java 中没有二维数组列表,但可以声明一个 ArrayList<ArrayList><Integer> 类型的变量,并自己构建每一行。