学习二维数组——没有多维数组

Java语言里提供了支持多为数组的语法。如果从数组底层的运行机制上来看——没有多维数组。

Java语言里的数组是引用类型,因此数组变量其实是一个引用,这个引用指向真实的数组内存。数组元素的类型也可以是引用,如果数组元素的引用再次指向真实的数组内存,这种形式看上去很像多维数组。

定义数组类型:type[] arrName;,这是典型的一维数组的定义方法,其中type是,数组类型的。如果希望数组元素也是一个引用,而且是指向int数组的引用,则可以把type具体成int[](前面已指出int[] 就是一种类型,int[]类型的用法与普通类型无任何的区别)那么上面定义数组的语法是int[][] arrName。

如果把int这个类型扩大到Java所有类型(不包括数组类型),则出现了定义二维数组的语法:

type[][] ArrName;

Java语言采用上面的语法格式来定义二维数组,但他的实质还是一维数组,只是其数组元素也是引用,数组元素里保存的引用指向一维数组。

接着对这个“二维数组”执行初始化,同样可以吧这个数组当成一维数组来初始化,把这个“二位数组”当成“一维数组”,其元素类型是type[]类型,则可以采用以下语法进行初始化:

arrName=new type[length][];

上面初始化的方法相当于初始化一个一维数组,这个一维数组的长度是length。同样,因为这个一维数组的数组元素是引用类型(数组类型)的,所以系统为每个数组元素都分配初始值:null。

这个二维数组实际上完全可以当成一维数组来使用,:使用new type[length]初始化一维数组后,相当于定义了length这个变量;类似的使用new type[length][]初始化这个数组后,相当于定义了length个type[]类型的变量,当然,这些type[]类型的变量都是数组类型,因此必须要再次初始化这些数组。

下面的程序示范了如何把二维数组当成一维数组来使用:

public class TwoDimensionTest {
	public static void main(String[] args){
		int[][] a;
		//把a当成一维数组进行初始化,初始化a是一个长度为4的数组
		//a数组的数组元素又是引用类型
		a=new int[4][];
		//把a数组当成一维数组,遍历a数组的每个数组元素
		for(int i=0;i<a.length;i++){
			System.out.println(a[i]);
		}
		//初始化a数组的第一个元素
		a[0]=new int[2];
		//访问a数组的第一个元素所指数组的第二个元素
		a[0][1]=6;
		//a数组的第一个元素是一个一维数组,遍历这一个一维数组
		for(int i=0;i<a[0].length;i++){
			System.out.println(a[0][i]);
		}
	}
}

for(int i=0;i<a.length;i++){
			System.out.println(a[i]);
		}

上面这段代码部分把a这个二维数组当成一维数组处理,只是每个数组元素都是null,所以看到的输出结果都是null。


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值