黑马程序员技术交流社区

标题: 数组 [打印本页]

作者: mbz2015    时间: 2015-6-26 21:25
标题: 数组


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


作者: 天涯回望    时间: 2015-6-26 21:32
灌水帖,飘过
作者: 十五号的人生    时间: 2015-6-26 21:36
楼主能调一下格式吗
作者: 含笑    时间: 2015-6-26 21:46
int[] arr = new int[5];




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2