一 . 二维数组
(1)二维数组
元素为一维数组的数组
(2)定义格式:
数据类型[][] 变量名; int[][] arr;
数据类型 变量名[][]; int arr[][];
数据类型[] 变量名[]; int[] arr[];
二.二维数组初始化
(1)静态初始化
格式:数据类型[][] 变量名 = new 数据类型[][]{{元素…},{元素…},{元素…},…};
范例:int[][] arr = new int[][]{{1,2,3},{4,5,6},{7,8,9}};
注意:一维数组中元素的个数可以是不同的
举例: int[][] arr = new int[][]{{1,2,3},{4,5},{6,7,8,9}};
(2)动态初始化
格式:数据类型[][] 变量名 = new 数据类型[m][n];
范例:int[][] arr = new int[2][3];
三.二维数组元素访问
(1)访问二维数组格式
获取二维数组:数组名
获取每一个一维数组:数组名[索引]
获取每一个二维数组元素:数组名[索引][索引]
(2)访问二维数组案例
int[][] arr = {{1, 2, 3}, {4, 5, 6}};
System.out.println(arr); //输出数组名 [[I@776ec8df
System.out.println(arr[0]); //输出二维数组中的一维数组名 [I@4eec7777
System.out.println(arr[0][0]); //输出数组具体元素
四.二维数组内存图
五.二维数组常见操作
(1)二维数组的遍历
需求:已知一个二维数组 arr = {{1,2,3},{4,5,6},{7,8,9}}; 请把元素在控制台输出
public class ArrayTest01 {
public static void main(String[] args) {
//定义二维数组,并进行静态初始化
int[][] arr = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}};
for (int i = 0; i < arr.length; i++) {
for (int j = 0; j < arr[i].length; j++) {
System.out.print(arr[i][j]+" ");
}
}
}
}
(2)二维数组元素打乱
需求:已知二维数组 arr = {{1,2,3},{4,5,6},{7,8,9}};用程序实现把数组中的元素打乱,并在控制台输出打乱后的数组元素
public class ArrayTest02 {
public static void main(String[] args) {
//1.定义二维数组,并进行静态初始化
int[][] arr = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}};
//2.创建随机数对象
Random r = new Random();
//遍历二维数组,进行元素打乱
for (int i = 0; i < arr.length; i++) {
for (int j = 0; j < arr[i].length; j++) {
int x = r.nextInt(arr.length);
int y = r.nextInt(arr[x].length);
//元素交换
int temp = arr[i][j];
arr[i][j] = arr[x][y];
arr[x][y] = temp;
}
}
//遍历二维数组输出
for (int i = 0; i < arr.length; i++) {
for (int j = 0; j < arr[i].length; j++) {
System.out.println(arr[i][j]);
}
}
}
}