二维数组的创建及使用

如果一维数组中的各个元素仍然是一个数组,那么它就是一个二维 数组。二维数组常用于表示表,表中的信息以行和列的形式组织,第一 个下标代表元素所在的行,第二个下标代表元素所在的列。

二维数组的创建

二维数组可以看作是特殊的一维数组,因此,二维数组的创建同样 有两种方式。

1.先声明,再用new运算符进行内存分配

声明二维数组的语法如下:

数组元素的类型 数组名字[ ][ ]; 
数组元素的类型[ ][ ] 数组名字;

【例】声明二维数组,实例代码如下:

int myarr[][];

同一维数组一样,二维数组在声明时也没有分配内存空间,同样要使用new关键字来分配内存,然后才可以访问每个元素。

对于高维数组,有两种为数组分配内存的方式:

(1)直接为每一维分配内存空间

【例】为每一维数组分配内存,实例代码如下:

a = new int[2][4]

上述代码创建了二维数组a,二维数组a中包括两个长度为4的一维 数组,内存分配如图所示。

二维数组内存分配(第一种方式)
二维数组内存分配(第一种方式)

(2)分别为每一维分配内存

【例】分别为每一维分配内存,实例代码如下:

a = new int[2][]; 
a[0] = new int[2]; 
a[1] = new int[3];

2.声明的同时为数组分配内存

第二种方式同第一种实现的功能相同。使用这种方式为二维数组分 配内存时,首先指定最左边维数的内存,然后单独地给余下的维数分配 内存。通过第二种方式为二维数组分配内存,如图所示。

二维数组内存分配(第二种方式)
二维数组内存分配(第二种方式)

二维数组初始化

二维数组的初始化与一维数组初始化类似,同样可以使用大括号完成。语法如下:

type arrayname[][] = {value1,value2…valuen};
  • type:数组数据类型。
  • arrayname:数组名称,一个合法的标识符。
  • value:数组中各元素的值。

【例】初始化二维数组,实例代码如下:

int myarr[][] = {{12,0},{45,10}};

初始化二维数组后,要明确数组的下标都是从0开始。例如,上面 的代码中myarr[1][1]的值为10。

int型二维数组是以int a [][]来定义的,所以可以直接给a[x][y]赋值。 例如,给a[1]的第2个元素赋值的语句如下:

a[1][1] = 20

使用二维数组

二维数组在实际应用中用得非常广泛。下面的实例就是使用二维数 组输出一个3行4列且所有元素都是0的矩阵。

【例6.9】在项目中创建类Matrix,在主方法中编写代码实现输出一 个3行4列且所有元素都为0的矩阵。

public class Matrix { // 创建类
	public static void main(String[] args) { // 主方法
		int a[][] = new int[3][4]; // 定义二维数组
		for (int i = 0; i < a.length; i++) {
			for (int j = 0; j < a[i].length; j++) { // 循环遍历数组中的每个元素
				System.out.print(a[i][j]); // 将数组中的元素输出
			}
			System.out.println(); // 输出空格
		}
	}
}
运行结果图
运行结果如图所示

说明:对于整型二维数组,创建成功之后系统会给数组中每个元素赋予 初始值0。

发表评论