二维数组
概念:存放一维数组的一维数组。
可理解为一个表格
二维数组创建语法:
1.先声明、再分配空间:
数据类型[][] 数组名;
数组名 = new 数据类型[高维长度][低维长度];
2.声明并分配空间:
数据类型[][] 数组名 = new 数据类型[高维长度][低维长度];
3.声明并赋值(繁):
数据类型[][] 数组名 = new 数据类型[高维长度][];//不规则数组,自行new低维数组
4.声明并赋值(简):
数据类型[] 数组名 = { {v1,v2,v3},{v4,v5},{v6,v7,v8,v9}};//显式初始化
第3种方式的代码说明:
public class ShuZu {
public static void main(String[] args) {
int arr[][] = new int[3][];
//查看行数组中内容
for (int i = 0;i<arr.length;i++){
System.out.print(arr[i]+"\t");
}
System.out.println();
//上列的arr[3][],仅是声明了三个一维的数组(数组中存放的为地址,固默认值为null。)
//为所声明的一维数组分配空间(每个存放地址的一维数组未指定长度)
arr[0] = new int[5];
arr[1] = new int[2];
arr[2] = new int[1];
//为所分配的空间赋值。
arr[0][0] = 2;
arr[0][1] = 2;
arr[0][2] = 2;
arr[0][3] = 2;
arr[0][4] = 2;
arr[1][0] = 2;
arr[1][1] = 2;
arr[2][0] = 2;
//打印
print(arr);
}
public static void print(int arr[][]){
for (int i = 0;i<arr.length;i++){
for (int j = 0;j<arr[i].length;j++){
System.out.print(arr[i][j]+"\t");
}
System.out.println();
}
}
}
实例:杨辉三角
public class YangHuiSanJiao {
public static void main(String[] args) {
//定义了一个长度为10,高度为10的二维数组,数组中的值都为0;
int[][] arr=new int[10][10];
for(int i=0;i<arr.length; i++) {
//由于只是给杨辉三角内的位置赋值,所以是j<=i
for(int j=0;j<=i;j++) {
//根据规律,使用if else 赋值
if(j==0||j==i) {
arr[i][j]=1;
}else {
arr[i][j]=arr[i-1][j-1]+arr[i-1][j];
}
/*由于只是输出杨辉三角范围内的值,所以在内层循环就输出,这种方法不能全部赋值完之后再输出
"\t"的原因是10和小于10的数组的宽度不同,所以使用\t制表符能使数与数之间距离相等
*/
System.out.print(arr[i][j]+"\t");
}
System.out.println();
}
}
}