关于java中数组的问题 int a[][] =new int[][]{{1,2,3},{4,5,6,7},{7,8,9,10,11}};请问大侠 上面定义的数组 在java中如何存储的?我现在纠结的地方是:该数组是a[3][x],可数组中的第二维的长度是不固定的,所以我想请问java中如何存储这样的数组? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 int i=10;这是基本类型的变量.int i[]={10};这是基本类型的数组,每个元素是基本类型String str="aaa";这是引用变量String str[]={"aaa"};这是引用类型的数组,每个元素是一个引用类.数组也是一个引用类型想一下,一个一维数组是一个引用类型,那么如果定义数组的数组呢?道理是不是一样的?对于上的String的类型,变成了int[];也就是int []a={1};--->对应于String str="aa";对应的数组是:int [](类型) ={类型,类型};基中(类型)是[]也就是:int [] []aa={{1},{2}};aa[]是一个数组,每一个元素是int[]int bb[]={2};bb是一个数组,每一个元素是int 2维数组,可以看作是1维数组的1维数组int a[][] =new int[][]{{1,2,3},{4,5,6,7},{7,8,9,10,11}};a[0] = {1,2,3} //a[0]有3个元素a[1] = {4,5,6,7} //a[1]有4个元素a[2] = {7,8,9,10,11} //a[2]有5个元素java中的数组是一个对象,所以2维数组的1维跟1维之间的内存不一定是连续的即a[0]和a[1]内存上不一定是连续的,而最后1维的内存可能是连续的,即a[0][0]和a[0][1]可能是连续的int a[][] =new int[][]{{1,2,3},{4,5,6,7},{7,8,9,10,11}};可以相当于如下的过程首先第一步int a[][] = new int[3][]; //给a分配空间,为3个数组对象空间第二步a[0] = new int[3]; //给a的第1个数组对象分配空间,为3个int第三步a[0][0] = 1; //给a[0][0]元素赋值a[0][1] = 2; //给a[0][1]元素赋值a[0][2] = 3; //给a[0][2]元素赋值然后重复第二步,给a的第2个数组对象分配空间a[1] = new int[4];然后重复第三步,给a的第二个数组的元素赋值依次类推 Tomcat5.0和Myeclipse开发,发布工程时工程不完整 JAVA拖拽事件 求助:java实现文字循环上下滚动并逐渐放大或缩小 java模拟电信月末计费的小程序(那位高手帮忙看看错在那里啊?) 大家帮帮看看这段代码的是不是有逻辑问题 我想用APPLET 读取服务器端文件绘制饼图,读不到数据怎么办?急!快帮帮我吧! 关于shhgs翻译的<<Thinking In Java>>3e中文版,有人看过吗? 求俄罗斯方块的设计思路 哪位仁兄能帮在下详细解述一下Unicode? java可以编制扫雷游戏吗?我想学编程. 求java算法 java的按钮图标问题
这是基本类型的变量.
int i[]={10};
这是基本类型的数组,每个元素是基本类型String str="aaa";
这是引用变量
String str[]={"aaa"};
这是引用类型的数组,每个元素是一个引用类.
数组也是一个引用类型
想一下,一个一维数组是一个引用类型,那么如果定义数组的数组呢?道理是不是一样的?
对于上的String的类型,变成了int[];也就是int []a={1};--->对应于String str="aa";
对应的数组是:
int [](类型) ={类型,类型};基中(类型)是[]也就是:
int [] []aa={{1},{2}};
aa[]是一个数组,每一个元素是int[]
int bb[]={2};
bb是一个数组,每一个元素是int
int a[][] =new int[][]{{1,2,3},{4,5,6,7},{7,8,9,10,11}};
a[0] = {1,2,3} //a[0]有3个元素
a[1] = {4,5,6,7} //a[1]有4个元素
a[2] = {7,8,9,10,11} //a[2]有5个元素
java中的数组是一个对象,所以2维数组的1维跟1维之间的内存不一定是连续的
即a[0]和a[1]内存上不一定是连续的,而最后1维的内存可能是连续的,即a[0][0]和a[0][1]可能是连续的int a[][] =new int[][]{{1,2,3},{4,5,6,7},{7,8,9,10,11}};
可以相当于如下的过程
首先第一步
int a[][] = new int[3][]; //给a分配空间,为3个数组对象空间
第二步
a[0] = new int[3]; //给a的第1个数组对象分配空间,为3个int
第三步
a[0][0] = 1; //给a[0][0]元素赋值
a[0][1] = 2; //给a[0][1]元素赋值
a[0][2] = 3; //给a[0][2]元素赋值然后重复第二步,给a的第2个数组对象分配空间
a[1] = new int[4];
然后重复第三步,给a的第二个数组的元素赋值
依次类推