我们首先来了解下为什么要学习数组?假如我们要给学生的成绩进行排序,在没有数组的情况下,我们要定义很多个变量,有了数组就简单很多。
数组是相同类型的数据按顺序组成的一种引用数据类型(前面介绍过,数据类型分为基本数据类型和引用数据类型,引用数据类型又分为类、接口、数组)。
我们首先来看数组的声明,看看他的语法格式:数据类型[ ] 数组名;我们对比一下变量的语法格式: 数据类型 变量名; 可以看到,两者之间很相像,只是数组在数据类型后加了个[ ];数组名的命名规则和变量的命名规则一致。数组还有第二种语法格式: 数据类型 变量名[ ];第一种是我们在Java数组命名中常用的方式。例:int[ ] myIntArray; int myIntArray[ ];
看完了数组的命名,我们再来看下数组的创建,数组名也有两种创建方式,第一种先声明后创建,例如:数据类型[ ] 数组名;数组名=new 数据类型[ 数组长度]; 看下这个例子 int[] arr; arr =new int[10];这条语句就声明并传创建了一个长度为10的整型数组。第二种命名方式:声明的同时创建数组。例如:数据类型[] 数组名 =new 数据类型[数组长度]; int[] arr = new int[10];这里就创建长度为10的整型数组arr。在这里要注意,数组的长度必须指定,若不指定就会报错。
我们知道在定义一个变量之后在内存总会分配一个内存空间,而我们的数组会被分配到连续的内存空间。我们整型数组的默认值都是0,我们的数组名是一个对象会指向数组的第一个元素。这在后面的方法传值时是非常重要的。
和之前不同的是,局部变量是没有默认值的而我们的数组是有默认值的,因为数组本身它其实是对象,我们接着看看数组的初始化。声明的同时给数组赋值,叫做数组的初始化。例如:int[] arr={1,2,3,4,5,6,7,8,9,10};数组的长度就是初始化时所给数组元素的个数,比我们现在这个数组它的长度就为10。
来看看数组的引用,它的语法格式:数组名[下标];(在这里要注意,下标是从0开始的)。数组的长度 使用length属性来计算的例如 arr.length 变量名.length。
大家可以像我一样在Eclipse敲一下代码,这样可以更加深入的理解
在上面的练习中,我们是给定了数组的固定值,我们通过一个例题来看一下:从键盘接收一些数据,求累加和。
我们之前求过两个元素的最大值,我们先在来求数组的最大值。例:求数组的最大值。
大家可以试着去写一个求最小值的代码。那么我们如何对两个值进行交换呢,看下图:
明白了如何交换后我们来看下冒泡排序,冒泡排序就是将一组数据由小到大排序。
看过了一维数组我们再来看看二维数组,它和一维数组比较相似,可以看成是多个一维数组组成的内容,我们也主要看一下二维数组的声明、创建、初始化、引用。在这里就不一一介绍概念了,直接通过一个案例来看一下它的应用。