怎么理解“多维数组的声明应按从高维到底维的顺序进行”。谢谢
解决方案 »
- 求保存对象的方法
- 循环查询数据库问题
- 诚心求教!程序最后一个无法解决的Bug!
- 继续自动安装jre
- 如何对查询表queryDataSet传递参数?
- 初学java就用 J Builder行吗?哪里能下载到啊?给个链接吧
- servlet问题,给解决一下,
- 一个很菜的问题,我是初学者,请高手指点
- 不知大家有没有听说过Tapestry,是一个有关权限管理的开发原代码
- 掌握向上转型与向下转型
- java中网络编程问题ServerSocket Socket具体描述有点不清楚 实在不行加我qq:908147131.多谢
- 小弟学java 只会写练习题的小代码 请问可以找什么样的工作?或者还要学习些什么才能找到工作?
java中多维数组的声明和初始化应按从高维到低维的顺序进行,例如:int a[][] = new int[3][]; //
a[0] = new int[2];
a[1] = new int[4];
a[2] = new int[6];
int t1[][] = new int[][4];//这是非法的 静态初始化:int a[][] = {{1,2},{4,6},{6,9}};
int a[3][2] = {{1,2},{4,6},{6,9}}; //非法
int[][] a = new int[2][];//正确
int[][] a = new int[][5];//错误
就是java在定义数组的时候高纬度未定义长度的时候,无法定义低纬度的长度
int a[][];
a也是个数组(Java里只有一维数组),a的元素是引用类型——整形数组int[]。可以称它为指向数组的数组。
就像我们使用其它引用类型数组一样,要先初始化数组,才能使用数组元素:
Student s[]=new Student[3];
s[0]=new Student();
……
指向数组的数组的情况一样:
int a[][]=new int[3][];
a[0]=new int[1];
a[1]=new int[4];
上面的例子就可以看出a不是二维数组了,与二维数组每行的列数必须一样这点不同,a的每行可以有不同的列数。至于上面给出的例子int[][] a=new int[2][5];其实是一种复合初始化。它实质上相当于:
int a[][]=new int[2][];
for(int[] i:a)
a[i]=new int[5];
以上处理过程由编译器代劳了。