class="MsoNormal" style="text-align: center;">数组
数组是一种线性的存储结构,即使用new为数组分配内存空间的时候,数组就得到了一块在内存上连续的存储单元。查找数组中的元素时,直接通过中括号内的数字即数组下标即可顺序查找到相应元素。
数组的常用定义格式:
数据类型[ ] 数组名= new 数据类型 [可存储的元素个数]
如 int [ ] array = new int [10];
访问数组时需注意数组下标从0开始,因此访问时的数组下标最大值不能超过数组长度-1。
数组的其它定义格式:
int[ ] array = {1,2,3};//这种方式定义数组时,数组长度自动根据大括号内的元素个数确定,并且大括号内的元素值被赋给相应的数组下标
int[ ] array;
array = new array[10];//这种方式即是先声明数组对象,然后再为对象分配内存空间
int[ ] array = new int[ ] {1,2,3}//声明,分配内存空间并赋值
?
错误的定义数组:
int [ ] array;
array = { 1,2,3 };//声明了类,但是没有为其分配内存空间,无法存储数据
?
从以上例子可以发现,数组的本质其实就是类,数组的声明即是实例化数组类的对象,因此必须通过使用new或其它的方式为数组分配内存空间。
数组的常用属性有length , 得到数组的长度 , 使用方法为 array . length ;
?
Public static final int [ ] array = new int [num];
//当以这样的方式声明数组的时候,array中存储的指向数组内存空间的指针被固定,但指针指向内存空间中存储的内容还是可以改变的。
?
Point [ ] array = new Point [ num ];
//数组中存储的数据类型也可以是类的对象,如Point 或 其它用户自定义的类。这一步只是为数组指定了内存空间,但仍为对每个对象分配内存空间,因此还需进行下一步
for( int i=0 ; i<array.length ; i++){
???????? array [ i ] =new Point( );
}//这个循环体为数组的每个对象元素分配一个Point类型的内存空间
?
二维数组的声明:
?
数据类型[ ][ ] 数组名 = new 数据类型[ num ][ num ] ;//二维数组相当于矩阵,两个下标可认为是矩阵的行列号。三维及多维数组的声明格式类似。