上QQ阅读APP看书,第一时间看更新
3.3 二维数组
前面我们介绍了一维数组,一维数组与二维数组具有相同点。二维数组其实是一维数组的嵌套(把每一行都看作一个内层的一维数组)。
3.3.1 数组的定义
数组的定义有三种格式,分别如下:
1)第一种定义格式
int [] [] arr = new int [3][4];
arr里面包含3个数组,每个数组里面有4个元素。
以上代码相当于定义了一个3×4的二维数组,即二维数组的长度为3,二维数组中的每个元素又是一个长度为4的数组。
2)第二种定义格式
int [] [] arr = new int [3] [];
这种方式和第一种类似,只是数组中每个元素的长度不确定。
3)第三种定义格式
int [] [] arr = {{1,2}, {3,4,5,6}, {7,8,9}};
上述二维数组中定义了3个元素,这3个元素都是数组,分别为{1,2}、{3,4,5,6}、{7,8,9}。
3.3.2 数组的声明
二维数组就是特殊的一维数组,其中每个元素都是一个一维数组,例如:
String str[][]=new String[3][4];
二维数组的动态初始化有以下两种方式:
(1)直接为每一维分配空间,格式如下:
type arryName = new type [arraylength1] [arraylength2]
type可以为基本数据类型和复合数据类型。
arraylength1和arraylength2必须为正整数,arraylength1为行数,arraylength2为列数。
例如:
int a [] [] =new int [2][3];
上述二维数组a可以看成一个两行三列的数组。
(2)从最高维开始,分别给每一维分配空间,例如:
String s [] [] =new String [2] []; s [0] =new String [2]; s [1] =new String [3]; s [0][0] =new String("Good"); s [0][1] =new String("Luck"); s [1][0] =new String("to"); s [1][1] =new String("you"); s [1][2] =new String ("!");
☆注意☆ “s[0]=new String[2]”和“s[1]=new String[3]”是为最高维数组分配引用空间,也就是为最高维限制能保存数据的最大长度,然后再为每个数组元素单独分配空间,即“s[0][0]=new String(“Good”);”等操作。