为什么要使用数组?
经过学习,我们可以通过编写程序来解决一些较复杂的问题了但是当需要处理的数据过多时,仅仅依靠普通的变量是不够的,即使简单的问题也可能需要复杂的程序来解决、处理。
举例:有五十只小狗,将他们的名字储存到计算机中,用程序如何解决呢?
首先我们要定义五十个变量:
String name1,name2,name3,…,name50 = new String(“”);
如果这样写的话就代表省略号部分的所有变量都要表示出来,这导致程序十分繁琐。有的人说:这不简简单单,复制(c)粘贴(v)就可以了。
再次举例:一所学校里有1280个学生,将他们的考试分数储存在计算机中,我们就要定义:
int score1,score2,score3,…,score1280;
试想一下,将省略号处的语句完整写出来,整个程序会多么繁琐,假设你要统计十所学校,那么需要统计的数据就成千上万,这就表明了如果需要处理的数据很多,用普通的变量单独储存,即使是简单的问题(如累加、阶乘等)也需要编写又长又麻烦的程序,这就体现了数组的重要性。
数组的定义与声明
在Java语言中,我们可以按照如下两个格式定义数组:
类型【】 数组名 = new 类型【数组长度】
类型【】 数组名 = {数据1,数据2…数据n)
在其中,我们也可以把类型【】 数组名改成类型 数组名【】的格式,但这不是首选方法,因为这种格式来源于c/c++,为了让c/c++程序员能够更好的转向Java语言。
数组的使用
数组的数据称为这个数组的下标,下标从零开始,一直到数组长度-1,如果调用了范围之外的数组就会引发“数组越界”,但是程序既不会报错也不能执行。形象一点就是,小明有三个盒子,第一个存的是妈妈给的钱,第二个存的是爸爸给的钱,第三个是自己的钱,可是小明非要从第四个不存在的盒子里拿钱买糖吃,这怎么可能?
数组下标调用格式:
int【】 array = {1,3,5,9,7}
//调用时
array【0】 == 1;
array【1】 == 3;
以此类推。
二维数组
二维数组简单表示就是“数组的数组”,我们可以将一位数组看成一条线(即一维空间)上的数组,那么二维数组就是一个平面的矩阵。这种数组的定义语句语法与一维数组差不多:
类型【】【】 数组名 = new 类型【行长】【列长】;
定义初始值的时候也可以这样写
类型【】【】 数组名 = {{数据1,…,数据n},{数据1,…数据n},…,{数据1,…数据n}};
也可以这样赋值
{数据1,数据2,数据3,…,数据n}
但是这样会比较难读懂,所以并不推荐。
假设a是一个3行5列的二维数据(即a【3】【5】),那么他就有3*5=15个下标的元素,左上角是a【0】【0】,右下角是a【2】【4】,左下角是a【2】【0】,右上角是a【0】【4】。
增强型for循环
在Java5中加入了一种面相与数组的增强型for循环:
for (变量名 : 数组名)
在使用时,要注意,变量的类型要与数组的类型相一致,否则会引发错误。
实例:
int【】 array = {1,23,456,7890};
for (int i:array){
System.out.println(i);
}
改代码用于输出数组的各元素。