/*
二维数组语法
数据类型[][] 数组名 = new 数据类型[大小][大小];
1、第一个"大小"表示:二维数组的长度,即二维数组里有几个一维数组
2、第二个"大小"表示:每一个一维数组的大小
*/
//二维数组有两个一维数组,每个一维数组有三个元素
int[][] arr = new int[2][3];
int arr1[][] = new int[2][3];
/*
1、先声明:数据类型 数组名[][];
2、再定义(开辟空间):数组名 = new 数据类型[大小][大小];
3、赋值(有默认值)
*/
int arr[][];//声明二维数组
arr = new int[2][3];//再开辟空间
public class Main {
public static void main(String[] args) {
//动态初始化————列数不确定
/*
动态创建下面的二维数组,并输出:
i/j j = 0 j = 1 j = 2
i=0 1
i=1 2 2
i=2 3 3 3
*/
//创建二维数组,有三个一维数组,但是每个一维数组没有开数据空间
int[][] arr = new int[3][];
for(int i = 0;i < arr.length;i++){//遍历arr每个一维数组
//给每个一维数组开空间 new
//如果没有给一维数组 new,那么arr[i]就是null
arr[i] = new int[i+1];//关键一步,我写的时候就是这步错了
//遍历一维数组,并给一维数组的每个元素赋值
for(int j = 0;j < arr[i].length;j++){
arr[i][j] = i+1;
}
}
}
}
/*
数据类型 数组名[][] = {{值1,值2,...}{值1,值2,...}}
*/
int arr[][] = {{1,2,3},{4,45,6}};
//解读:
/*
1、定义了一个二维数组arr
2、arr有两个元素(每个元素都是一个一维数组)
3、第一个一维数组有三个元素,第二个一维数组有三个元素
*/
//比如map是一个二维数组
int[][] map = {{1,2,3},{1}};
//map[0]是一个含有三个元素的一维数组
//map[1]是一个含有一个元素的一维数组
//这样的二维数组我们也称为列数不等的二维数组
public class Main {
public static void main(String[] args) {
int[][] arr = {{1,1,1},{2,2,2}};
for(int i = 0;i < arr.length;i++){//遍历二维数组每个元素
//1、arr[i]表示 二维数组的第 i+1 个元素,比如arr[0]:二维数组的第一个元素
//2、arr[i].length得到对应的每一个一维数组的长度
for(int j = 0;j < arr[i].length;j++){
System.out.print(arr[i][j]+" ");//arr[i][j] 第 i+1 个一维数组的第 j+1 个值
}
System.out.println();
}
}
}
public class Main {
public static void main(String[] args) {
//杨辉三角
/*
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1
.....
提示:
1、第一行有一个元素,第n行有n个元素
2、每一行的第一个元素和最后一个元素都是1
3、从第三行开始,对于非第一个元素和最后一个元素的元素值arr[i][j]
arr[i][j] = arr[i-1][j] + arr[i-1][j-1]; 关键规律
*/
int[][] yanghui = new int[10][];
for(int i = 0;i < yanghui.length;i++){//遍历yanghui的每个元素
//给每个一维数组(行)开空间
yanghui[i] = new int[i+1];
//给每个一维数组(行)赋值
for(int j = 0;j < yanghui[i].length;j++){
//每一行的第一个元素和最后一个元素都是1
if(j == 0 || j == yanghui[i].length - 1 ){
yanghui[i][j] = 1;
}else{//中间元素
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]+" ");
}
System.out.println();
}
}
}
本文章使用limfx的vscode插件快速发布