概念:一维数组中的一维数组,即数组中元素,还是数组
二维数组 nums[3][5];
0 1 2 3 4 5 [0][0] [0][1] [0][2] [0][3]
1 6 7 8 9 1 [1][0] [1][1] [1][2] [1][3]
2 4 1 2 3 1 [2][0] [2][1] [2][2] [2][3]
(0 1 2 3 4)
使用双下标访问二维数组中的元素,
第一个下标代表:行号(第一维下标),
第二个下标代表:列号(第二维下标)。
先声明、再分配空间:
声明并分配空间:
声明并赋值(繁):数据类型[][] 数组名 = new 数据类型[第一维长度][]; //不规则数组,自行new低维数组
声明并赋值(简):数据类型[][] 数组名 = { {v1,v2,v3},{v4,v5},{v6,v7,v8,v9} }; //显示初始化
语法:
//1. 声明
int[][] nums1; //推荐
int nums2[][];
eg:
//2.1 静态初始化
nums1 = new int[][] {{10,20,30},{40,50,60}};
nums2 = new int[][] {{3,5},{7,9,11,13,15}};
//简写,必须一条语句完成
int[][] num3 = {{1,3,5},{7,9,11,13,15}};
eg:
//2.2 动态初始化
String[][] names = new String[2][3];
String[][] cities = new String[2][];
cities[0] = new String[3];
cities[1] = new String[5];
//修改元素
names[0][0]="张三";
names[0][1]="李四";
names[0][2]="王五";
names[1][0]="小红";
names[1][1]="小路";
names[1][2]="小吕";
System.out.println(names[0][0]);
System.out.println(names[0][1]);
System.out.println(names[0][2]);
System.out.println(names[1][0]);
System.out.println(names[1][1]);
System.out.println(names[1][2]);
语法: 使用双重循环遍历进行遍历;
eg:
//二维数组遍历
System.out.println(names.length);
System.out.println(names[0].length);
System.out.println(names[1].length);
for (int i = 0; i < names.length; i++) {
for (int j = 0; j < names[i].length; j++) {
System.out.println(names[i][j]+"\t");
}
System.out.println();
}
eg:
//2. 初始化
//2.1 静态初始化
nums1 = new int[][] {{1,3,5},{10,20,30}};
nums2 = new int[][] {{1,3},{5,7,9}};
//2.2 动态初始化
String[][] names = new String[2][3];
String[][] cities = new String[2][];
cities[0] = new String[3];
cities[1] = new String[5];
eg:
package StageOne.day08.demo;
/**
* @author 胡昊龙
* @version 1.0
* @description: 杨辉三角
* @date 2023/12/28 10:27
*/
public class demo02 {
public static void main(String[] args) {
int[][] tangle = new int[10][];
for (int i = 0; i < tangle.length; i++) {
tangle[i] = new int[i+1];
for (int j = 0; j < tangle[i].length; j++) {
if (j==0||i==j) {
tangle[i][j]=1;
} else {
tangle[i][j] = tangle[i-1][j-1] + tangle[i-1][j];
}
}
}
System.out.println("---------------------遍历---------------------");
for (int i = 0; i < tangle.length; i++) {
System.out.printf("%"+2*(tangle.length-i)+"s","");
for (int j = 0; j < tangle[i].length; j++) {
System.out.printf("%-6d",tangle[i][j]);
}
System.out.println();
}
}
}
结果:
---------------------遍历---------------------
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1
1 6 15 20 15 6 1
1 7 21 35 35 21 7 1
1 8 28 56 70 56 28 8 1
1 9 36 84 126 126 84 36 9 1
使用IDEA的调试技巧,帮助开发人员理解程序执行过程,从而发现问题,解决问题。
需要两个步骤:
快捷键: