四、多维数组 1.多维数组的基础知识 Java编程语言没有象其它语言那样提供多维数组。因为一个数组可被声明为具有任何基础类型,所以你可以创建数组的数组(和数组的数组的数组,等等)。一个二维数组如下例所示: int twoDim [][] = new int [4][]; twoDim[0] = new int[5]; twoDim[1] = new int[5]; 首次调用new而创建的对象是一个数组,它包含4个元素,每个元素对类型array of int的元素都是一个null引用并且必须将数组的每个点分别初始化。
因为这种对每个元素的分别初始化,所以有可能创建非矩形数组的数组。也就是说,twoDim的元素可按如下方式初始化: twoDim[0] = new int [2] twoDim[1] = new int [4]; twoDim[2] = new int [6]; twoDim[3] = new int [8];
由于此种初始化的方法烦琐乏味,而且矩形数组的数组是最通用的形式,因而产生了一种”速记”方法来创建二维数组。例如: int twoDim [][] = new int [3][4]; 可被用来创建一个每个数组有4个整数类型的3个数组的数组。
对二维数组 int [][] a = new int[3][4]; 可以理解成为如下图所示:
注意:尽管声明的格式允许方括号在变量名左边或者右边,但此种灵活性不适用于数组句法的其它方面。例如: new int [][4]是非法的。
2.示例 class FillArray { public static void main (String args[]) { int[ ][ ] matrix = new int[4][5]; //二维数组的声明和创建 for (int row=0; row < 4; row++) { for (int col=0; col < 5; col++) { matrix[row][col] = row + col; //二维数组的访问,为元素赋值 } } } } 当然也可以直接定义并赋值,如下: double[ ][ ] c = { {1.0, 2.0, 3.0, 4.0}, {0.0, 1.0, 0.0, 0.0}, {0.0, 0.0, 1.0, 0.0} }; 从上面可以看得很清楚,二维数组其实就是一维的一维数组。
3.多维数组的本质 N维数组就是一维的N-1维数组,比如:三维数组就是一维的二维数组。 三维以至多维数组都是一个思路,一维数组——〉二维数组——〉三维数组 的实例: class Fill3DArray { public static void main (String args[]) { int[ ][ ][ ] M = new int[4][5][3]; for (int row=0; row < 4; row++) { for (int col=0; col < 5; col++) { for (int ver=0; ver < 3; ver++) { M[row][col][ver] = row + col + ver; } } } } } Java私塾跟我学系列——JAVA篇 网址:http://www.javass.cn 电话:010-68434236 |