二维数组的使用
java 语言里提供了支持多维数组的语法。
如果说可以把一维数组当成几何中的线性图形,那么二维数组就相当于是一个表格,像右图Excel中的表格一样。
对于二维数组的理解,我们可以看成是一维数组array1又作为另一个一维数组array2的元素而存在。其实,从数组底层的运行机制来看,其实没有多维数组。
声明
数据类型[][] 变量名;
初始化
格式1(动态初始化):
语法
int[][] arr = new int[3][2];
解释
定义了名称为arr的二维数组
二维数组中有3个一维数组
每一个一维数组中有2个元素
一维数组的名称分别为arr[0], arr[1], arr[2]
给第一个一维数组1脚标位赋值为78写法是:arr[0][1] = 78;
格式2(动态初始化):
语法
int[][] arr = new int[3][];
解释
二维数组中有3个一维数组。
每个一维数组都是默认初始化值null (注意:区别于格式1)
可以对这个三个一维数组分别进行初始化
arr[0] = new int[3]; arr[1] = new int[1]; arr[2] = new int[2];
注:int[][]arr = new int[][3]; //非法
格式3(静态初始化):
语法
int[][] arr = new int[][]{
{3,8,2},{2,7},{9,0,1,6}};解释
定义一个名称为arr的二维数组,二维数组中有三个一维数组
每一个一维数组中具体元素也都已初始化
第一个一维数组 arr[0] = {3,8,2};
第二个一维数组 arr[1] = {2,7};
第三个一维数组 arr[2] = {9,0,1,6};
第三个一维数组的长度表示方式:arr[2].length;
注意
注意特殊写法情况:int[] x,y[]; x是一维数组,y是二维数组。
Java中多维数组不必都是规则矩阵形式
二维数组的第一个[]必须有数组长度。
使用
一般和嵌套for一起使用
int[][] a=new int[3][2];
for (int i = 0; i < a.length; i++) {
for (int j = 0; j < a[i].length; j++) {
System.out.println(a[i][j]);
}
}
杨辉三角
//设置杨辉三角的行数
int count = 10;
//定义一个二维数组
int[][] yangHui = new int[count][];
//给二维数组赋值
for(int i = 0;i < yangHui.length;i++){
//动态初始化二维数组
yangHui[i] = new int[i + 1];
//给开头和结尾赋1
yangHui[i][0] = yangHui[i][i] = 1;
/*
* 给非开头和结尾赋值,因为开头和结尾的值已经为1,所以开头和结尾的值都不用改。
* j = 1 :是表示从每个数组的第二个数字开始,因为第一个数字的值已定
* j < yangHui[i].length :是表示每个数组的最后一个数字不变。因为最后一个数字也是固定不变的
*/
for(int j = 1;j < yangHui[i].length - 1;j++){
yangHui[i][j] = yangHui[i -1][j] + yangHui[i - 1][j -1];
}
}
//便利二维数组
for (int i = 0; i < yangHui.length; i++) {
for (int j = 0; j < yangHui[i].length; j++) {
System.out.print(yangHui[i][j]+"\t");
}
System.out.println("");
}