一:二维数组
1.1 二维数组的格式
1.二维数组的概述:
二维数组其实就是每一个元素都是一维数组的数组
2.二维数组的格式1:
数据类型 [ ] [ ] 变量名=new 数据类型 [m] [ n];
m表示这个二维数组有多少个一维数组,这个必须写上。
n表示每一个一维数组的元素个数,这个可写可不写。
例如:int [] [] arr=new int [3] [2];
表示定义了一个二维数组arr,其中有3个一维数组,名称为arr[0]、arr[1]、arr[2]。每一个数组中的元素个数为2个,可以通过arr[m][n]来获取。
3.二维数组的格式2:
数据类型 [ ] [ ] 变量名=new 数据类型 [m] [ ];
m表示这个二维数组有多少个一维数组,可以动态的给出一维数组的个数。
格式1和格式2的内存图如下所示:
格式1:定义的是一个长度为2的二维数组,并且初始化了两个长度为3的一维数组,并且是将两个一维数组的地址值赋给了二维数组中。首先,当二维数组创建的时候,默认值为null(数组属于引用类型,其默认值为null),但很快会被一维数组的地址值所覆盖到,并且一维数组的默认值为0(int类型的一维数组默认值为0),二维数组int[2][3]将自己的地址值赋给arr1.
格式2:采用的是动态初始化,定义了一个长度为2的二维数组,同格式1相同,由于没有定义一维数组的个数,所以二维数组内存储的只会是null。
运行结果:
4.二维数组的格式3:
数据类型[][] 变量名 = {
{元素…},{元素…},{元素…}};
这种格式属于静态初始化,由系统给定长度。
内存图如下:
定义了长度为3的二维数组,并且每一个一维数组的值都给定,在二维数组的默认值为null的情况下,会被一维数组的地址值覆盖掉。一维数组的默认值0也会被定义的数值所覆盖。
5.二维数组的练习:打印杨辉三角
import java.util.Scanner;
public class Demo03 {
public static void main(String[] args) {
//打印杨辉三角 行数由键盘录入
Scanner sc = new Scanner(System.in);
System.out.println("请输入杨辉三角的行数");
int n = sc.nextInt();
int [][] arr=new int[n]