前面介绍的数据类型都是基本数据类型,例如整型、字符型、浮点型等数据,这些都是简单的数据类型。对于有些数据,只有简单的数据类型是不够的,难以反映出数据的特点,也难以有效地进行处理。
例如:假设需要接收并存储100个学员的成绩,此时无法使用for循环依次读取每个学员的成绩,因为在for循环中只通过一个变量依次存储这些值,这样,for循环运行结束后只能保存最后一个学员的成绩,而前面99个学员的成绩都无法找回。因此,在这种情况下,只能通过声明100个变量,并且编写100个nextFloat()和printf()语句,来接收和输出用户输入的学员成绩。那么,如果要求处理5000个学员的成绩呢,岂不要定义5000个存储成绩的变量?
日常生活中有大量的数据类似于此,它们有相同的类型,需要的处理方法也一致,为了实现对这些数据统一表达和处理,Java语言提供了“数组”这一数据结构,数组可以把同一类型的数据有序进行排列,进行同一存储和操作。数组结构如下图所示;
图 9-1 数组结构
数组是有序数据的集合,其结构的最大特征就是通过有序编号固定集合内每个数据的位置如上图所示。有序编号被称为下标,被固定的每个数据被称为元素。数组内所包含元素的数据类型没有限制,可以是任意类型的数据,如数值、字符串、布尔型、对象、数组。下标值是一个从0开始的连续正整数。上图的0、1、2、length-2、length-1为数组元素的下标,其中length是数组包含元素的个数,length-2为数组倒数第二个元素,length-1为数组最后一个元素。程序可以通过下标访问数组中的元素。
数组的所有元素在内存中连续存储,其所有元素的数据类型必须相同。不能将数据类型不同的数据存储在同一个数组中。不管数组中含有多少个元素,该数组都将只有一个名称。数组的大小或长度是可容纳元素的最大数量。在数组的处理过程中,如果数组的下标值超过此大小,将会导致程序运行过程中发生不可预知的结果,因此在使用数组时,必须确保数组容纳元素的数量不能超过数组规定的大小。
下图显示了数组中涉及的概念,包括数组的名称、大小、数组中的元素及数组的下标。
图 9-2 数组结构说明
上图显示了名称为Rate的数组及其四个元素,数组名称后面方括号中的数字是数组可容纳元素的最大数量,也称为数组的长度,数组的小标标明了元素在数组中的位置。
■ 知识点拨
数组是Java语言中一种非常重要的数据类型,是具有相同的数据类型且按一定次序排列的一组变量的集合体,构成一个数组的这些变量称为数组元素。数组有一个统一的名称,通过名称和数组下标可以访问数组中的任意元素。
■ 思考与练习
生活中有很多类似数组应用的例子,例如:一个足球队通常会有几十个人,球迷会把他们看作是所喜爱球队的成员,然后再利用他们的号码来区分每一个队员,这时候,球队就是一个数组,而号码就是数组的下标,球迷可以用某某队某某号来确定每一个球员。放到程序当中,球队就是数组名称,球员号码就是下标。
请尝试列举一个生活中类似数组应用的例子。