上篇在foreach中有引入一个数组的概念,数组是最为常见的一种数据结构,是相同类型的、用一个标识符封装到一起的基本类型数据序列或对象序列。
数组是具有相同数据类型的一组数据的集合,根据维数不同可以分为一维数组、二维数组和多维数组。大家可以将一维看作直线,二维看作平面、三维看成立体空间。
一、一维数组
1. 创建一维数组
数组作为对象允许使用new关键字进行内存分配。在使用数组之前,必须首先定义数组变量所属的类型,即声明数组。
声明数组有两种形式,在之前的篇章中也有所提及,语法格式如下:
数组元素类型 数组名[];
数据元素类型[] 数组名;
程序员在编写代码时习惯使用第二种方法,需要注意的声明时是[]中不能添加任何数据。下面是一个声明数组的例子,两种声明方式都正确,不同数据要声明不同类型的数组:
int arr[]; //声明int型数组,数组中每个元素都是int型数值
String[] str; //声明String数组,数组中每个元素都是String数组
声明数组后还不能访问它的任何元素,要想真正使用数组还要为其分配内存空间,且分配内存空间时必须指明数组的长度。语法格式如下:
数组名 = new 数组元素类型[数组元素个数];
下面举一个例子,为数组分配一个大小为5的内存空间:
arr = new int[5];
一维数组arr的存储状态如下图:
arr[0]
arr[1]
arr[2]
arr[3]
arr[4]
括号中的0、1、2、3、4表示数组的下标。需要注意的是,下标从0开始,到数组长度-1为止。
当然也可以直接声明并分配内存,如下:
int[] week = new int[7];
上述代码创建了一个一维数组week,并指定了数组长度为7。
还有一点需要注意的是,使用new关键字为数组分配内存时,数组中各个元素的初始化值都为0。比如上述代码使用new关键字创建了长度为7的week数组,那么数组中的元素可以表示为[0, 0, 0, 0, 0, 0, 0],这就是一个一维数组