一、引入
// 1-二维数组 引入
// 1-1 一维数组 之前讨论的数组为一维数组
int[] a = new int[]{1,2,3}; // 一维数组中的数据为整型数
// 2-2 二维数组 数组中的数组
int[][] b = new int[][]{
{1,2,3},
{4,5},
{6}
}; // 二维数组b,3个一维数组,二维数组中的数据为一维数组
二、初始化
// 2-二维数组初始化
// 2-1 声明 分配空间 可访问
int[][] c1 = new int[2][3]; // 声明并创建二维数组,2个一维数组,每个一维数组的长度为3
// 第1个一维数组 下标 0 0 0 1 0 2
// 第2个一维数组 下标 1 0 1 1 1 2
// c1[0] 表示第1个一维数组
// c1[1] 表示第2个一维数组
c1[0][2] = 10; // 可通过二维下标访问
// 2-2 声明 未分配空间 不可访问
int[][] c2 = new int[2][];
// 要访问 需先分配空间
c2[0] = new int[3]; // 第1个一维数组 长度为3
c2[0][0] = 5;
// 2-3 声明 分配空间 赋值
int[][] c3 = new int[][]{ {0,0,0},{1,1,1},{2,2,2} }; // 二维数组c3,3个一维数组,每个一维数组长度为3
// 2-4 遍历二维数组 c4
int[][] c4 = { {1,2},{3,4,5},{6,7,8,9} };
System.out.println("遍历二维数组 c4:");
for(int i=0; i<c4.length; i++){ // 循环条件 二维数组长度
for(int j=0; j<c4[i].length;j++) // 循环条件 每个一维数组长度
System.out.print(c4[i][j] + " ");
System.out.println();
}
2-4运行结果:
三、练习
// 3-练习
// 5*5 二维数组,填充50-100随机数,找出其中的最大值,并获取二维坐标(索引)
// 3-1 声明 创建 赋值
int[][] t = new int[5][5];
System.out.println("遍历随机数组t:");
for(int i=0; i<t.length; i++){ // 循环条件 二维数组长度
for(int j=0; j<t[i].length;j++){ // 循环条件 每个一维数组长度
t[i][j] = (int) (Math.random()*50+50); // 50-100
System.out.print(t[i][j] + " ");
}
System.out.println();
}
// 3-2 求最大值 及其二维坐标
int max = 50;
int x = 0;
int y = 0;
for(int i=0; i<t.length; i++){
for(int j=0; j<t[i].length;j++){
if(t[i][j] > max){
max = t[i][j];
x = i;
y = j;
}
}
}
System.out.println("最大值为:" + max);
System.out.println("二维坐标为:[" + x + "][" + y + "]");
练习-运行结果:
我的学习源泉:https://how2j.cn/k/array/array-2d/283.html?p=114999
Java自学网站:https://how2j.cn?p=114999