java没有多维数组

主要讨论的问题:从数组底层的运行机制来看———java没有多维数组。

原因:java语言中数组类型是引用类型,因此数组变量其实是一个引用,这个引用指向真实的数组内存。并且数组元素的类型也可以是引用,如果数组元素的引用再次指向真实的数组内存,这种情形看上去就是我们通常说的多维数组了。

简单举例及说明:int arrName= new int[4][]
采用语法格式定义二维数组,但它实质是一维数组,如图1-1.
二维数组可以简单的总结为:数组的引用指向一维数组,一维数组指向另一个一维数组

图1-1    将二维数组当成一维数组初始化的存储示意图

 

具体代码及讲解(见图1-2):


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

}

 图1-2  初始化a[0]后的存储示意图

 

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值