2.二维数组
2025年09月21日
2.二维数组
二维数组
二维数组的定义:
int[][]arr=new int[2][3];//2行3列的二维数组
该程序表示开辟6个整数的连续空间,依次存储arr[0][0]、arr[0][1]、arr[0][2]、arr[1][0]、arr[1][1]、arr[1][2]。
二维数组可以看作若干个一维数组。Java二维数组每一行的长度可以不同,如图1.4.3所示。
图1.4.3 Java二维数组的逻辑图
int[][]arr=new int[2][];//定义二维数组arr,有两行(一定是先确定最高维的长度)
arr[0]=new int[2];//arr第0行是长度为2的一维数组
arr[1]=new int[4];//arr第1行是长度为4的一维数组
也可以通过赋初值定义二维数组:
int[][]arr={{1,2},{1,2,3,4}};
初值将决定二维数组arr内存空间的分配,如图1.4.4所示。
图1.4.4 Java二维数组赋初值
【例4.5】需求:打印10行杨辉三角形(如图1.4.5所示)。
图1.4.5 杨辉三角形
杨辉三角形的规律:每一行的第一个和最后一个元素为1,中间的各元素是上一行正对元素和前一元素之和。
分析:首先,观察到需要一个二维数组来存储元素,第0行有1个元素,第1行有2个元素,…,第i行就有i+1个元素,需按照这个规律来开辟数组的空间。然后,按照杨辉三角形的规律给数组赋值。每一行的赋值规律:第0列赋值为1;第1列到第i-1列赋值为上一行两个元素之和;第i列元素赋值为1。
【代码4.5】
代码4.5
若把二维数组的每个数组元素看作是一个一维数组,那二维数组就可当作一维数组来处理。依此类推,可以推演出n维数组的处理方式,这里就不延展了。