1.
数组的声明:
声明数组,包括声明数组的名字、数组包含的元素的数据类型。数组可以一维的,也可以是二维
或者多维的。举例来说:一个班有
50
个人,我们用一个长度为
50
的一维数组表示;如果要表示每个
同学的五门高考成绩,那我们就需要用一个第一维长度为
50
,第二维长度为
5
的二维数组。
声明一维数组有两种格式:
数组元素类型
数组名
[ ]
;
数组元素类型
[ ]
数组名;
比如:
int student[ ];
或者:
int[ ] student;
类似地,声明二维数组有两种格式:
数组元素类型
数组名
[ ][ ]
;
数组元素类型
[ ][ ]
数组名;
比如:
int score[ ][ ];
或者:
int[ ][ ] score;
下面,我们主要以一维数组为例,学习数组的用法。
2.
数组的创建:
声明数组仅仅给出了数组名字和元素的数据类型,
想要真正使用数组还必须为数组分配内存空间,
也就是创建数组。在为数组分配内存空间时必须指明数组的长度。为数组分配内存空间的格式如下:
数组名
= new
数组元素的类型
[
数组的长度
]
例如:
student = new int [50]
;
score = new int [50] [4]
;
事实上,数组的声明和创建可以一起完成,比如:
int student [ ] = new int [50];
一旦数组被创建,数组的大小就不能改变。如果在程序运行期间,需要对数组的大小进行扩展,
通常需要使用另一种数据对象:
Vector
。有关向量和扩展数组,
有兴趣的同学可以在
Java
帮助中查找
Vector
的帮助。
student
数组创建之后,其内存模式如图:
3.
数组的初始化:
创建数组后,系统会给每个元素一个默认的值,比如,整型数组的默认值是
0
。
我们也可以在声明数组的同时给数组一个初始值,我们称之为初始化。
int num [ ] = {2, 4, 4, 1}
。
这个初始化动作相当于:
int num [ ] = new int [ 4];
num [0]=2; num [1]=5; num [2]=4; num [3]=1;
4.3
数组的使用
1.
数组的访问
前面我们已经看到,数组通过下标访问数组元素,比如:
student [ 0 ]=70
,
student [49]=87
等。注意,下标从
0
开始,如果数组长度为
n
,则下标是
0 ~ n -1
,如果使用
n
或者以上的元素,将
会发生数组溢出异常。比如:
student[ 50 ] = 79
,虽然编译的时候能通过,程序运行时将中止。
二维数组的使用与之类似。
2.
数组的复制
可以把一个数组变量复制给另一个,
但两个变量引用的都会是同一个内存空间
,
所以改变一个数
组的值,另一个数组变量的值也会改变。
比如:
int num [ ] = {2, 3, 5, 1}
;
int numcopy[ ]=num;
numcopy[2 ]=5;
现在,
num[2]
也变成了
5
。
如果真的想把一个数组的所有值都复制到另一个数组中,就需要采用
System . arrarycopy()
方
法:
System . arrarycopy ( num, 0, numcopy, 0
,
4)
。这样,
num
和
numcopy
将指向不同的内存空
间,
numcopy
的值的改变,不会在影响
num
。 |
|