二维数组创建
定义数组
声明二维数组
Java中二维数组的声明格式:
数据类型名[ ][ ] 数组名; 或 数据类型名 数组名[ ][ ];
分配数组内存
常用格式:
new 数组名[ M][N ] ; //M,N为数组行号和列号
分配数组内存
1)规则二维数组:可以直接为每行元素分配空间。
double[][] b;
b=new double[2][3];
double a[][]=new double[2][3];
2)不规则二维数组:通常从首行开始,分别为每一行元素分配空间。
int a[ ][ ]=new int[3][];
a[0]= new int[2];
a[1]= new int[3];
a[2]= new int[4];
Student s[ ][ ] = new Student[2][ ];
s[0]= new Student [1];
s[1]= new Student [2];
s[0][0]= new Student();
数组元素引用
二维数组元素的引用格式为:
数组名[元素行下标] [元素列下标]
注意,对于一个M行N列的二维数组来说,其任何元素的行下标都只能在[0,M-1]的范围内取值,列下标只能在[0,N-1]范围内取值。
比如:
定义规则二维数组
int a[][]=new int[2][3];
则其元素的引用: a[0][0] //ok a[0][3] //error
a[0][2] //ok a[2][3] //error
数组初始化
二维数组初始化的时候,可以把每一行数据用一对{}括起,不同行数据间用逗号隔开。此时一个二维数组是否规则,完全依赖于其初始化数据的状况。
int intArray_1[ ][ ]={{1,2},{2,3},{3,4}};
//定义了一个3行2列的规则二维数组,共有6个元素
int intArray_2[ ][ ]={{1,2},{2,3},{3,4,5}}; //定义了一个3行的不规
则二维数组,第一行2个元素,第二行2个元素,第三行3个元素,共7个元素
二维数组遍历
对于二维数组的遍历,是指访问一个二维数组中的每一个元素。
由于二维数组的数据排列具有行列关系,所以二维数组的长度(即length属性)实质上是指其包含的行数,而每一行的长度实质上是指该行数据包含的列数,访问格式如下:
数组名.length
数组名[行下标].length
通过访问数组长度和行长度,可以方便的遍历一个二维数组。
利用二重for循环访问数组长度和行长度,可以方便的遍历一个二维数组:
int arr[][] = { { 1 }, { 2, 3 }, { 4, 5, 6 } };
for (int x = 0; x < arr.length; x++) {
for (int y = 0; y < arr[x].length; y++)
System.out.print(arr[x][y] + "、");
System.out.println("");
}
案例:
矩阵的转置,即将二维数组行列元素互换位置,形成一个新的二维数组存到另一个数组中