5.2.2 二维数组的初始化
同一维数组一样,只声明了数组,这时候其值为null,要想使用数组,还需要做初始化工作。数组初始化为声明的数组指定数组元素个数,为数组元素分配空间并赋值。数组初始化可以通过如下几种方式完成。
1. 用new关键字初始化数组
用关键字new初始化数组时,除了为数组指定数组元素个数、分配存储空间外,还会为数组元素按照数据类型的不同赋初值。具体如下:
若为数值型,数组元素的默认值为0,;
若为布尔型,数组元素的默认值为false;
若为引用型,数组元素的默认值为空(null)。
(1)先声明数组,在初始化数组。这里实际上是两条语句,具体格式如下:
数据类型[][] 数组名; 或数据类型 数组名[][];
数组名=new 数据类型[length1][length2];
第一条语句是数组声明语句,第二条语句则是初始化语句。要求这两条语句中数组名、数据类型必须一致。Length1指定数组的行数,length2指定数组的列数。
数组的Length1和Length2可以是直接的int类型常数,也可以是已经赋值的int类型变量或int类型表达式。
例如:
int m=3,n=2;
int[] a;
a = new int[m][n];
上面的语句声明并初始化一个3行两列的数组a,同时,根据默认值的约定,数组a中的所有元素初值均为0
(2)在声明数组的同时用new关键字初始化数组。实际上,这种方式是将第一种方式的两条语句合并为一条语句。格式如下:
数据类型[][] 数组名 =new 数据类型[length1][length2];
或
数据类型 数组名[][]=new 数据类型[length1][length2];
例如:
int m=3,n=2;
int[][] a = new int[m][n];
2.用一个已经初始化的数组对数组初始化
可以直接使用一个已经初始化的数组对新声明的数组进行初始化。
格式如下:
数据类型[][] 数组名=已初始化数组
例如:
Int[][]a=new int[10][10];
Int[][]b=a;
同一维数组一样,这种初始化会使得数组a与b具有相同的存储地址,a数组与b数组指向了同一个物理地址,任何对数组a的改变都会使数组b做相应的修改,同样,任何对数组b的修改也会使a数组的内容发生变化。
3.直接指定初值的方式
用直接指定初值的方式初始化数组是指在声明数组的同时将数组元素的初值依次写入赋值号(=)后的一对大括号({})内,大括号中的每个元素也是一对大括号。如:
int a [][] = {{1,2},{3,4},{5,6}};
这样就定义了一个3行2列的数组。
2017年计算机二级考试java章节辅导:二维数组的初始化.doc