《Java语言基础04数组.ppt》由会员分享,可在线阅读,更多相关《Java语言基础04数组.ppt(13页珍藏版)》请在金锄头文库上搜索。
1、第三章第三章 Java 语言基础语言基础 3.5 数组数组数组是一个长度固定的数据结构,它存储多个相同类型的数值数组是一个长度固定的数据结构,它存储多个相同类型的数值数组直接被数组直接被Java编程语言所支持,但是无论数组是由原始类型构成,或者带有其它编程语言所支持,但是无论数组是由原始类型构成,或者带有其它类数据,数组也是一个对象类数据,数组也是一个对象数组是一个数组是一个Object类的一个不明显的扩展,所以可以指定一个数组给一个类型定义类的一个不明显的扩展,所以可以指定一个数组给一个类型定义为为Object的变量的变量3.5 数组数组3.5.1 创建一维数组在Java中,数组可以是任何类
2、型的原始类型或类类型,也就是说,数组元素可以是原始类型的量,也可以是某一个类的对象数组的创建一般需要以下三个步骤: 数组的声明创建数组空间初始化数组3.5 数组数组1、数组的声明数组的声明和创建是有区别的,声明只需要确定数组的类型和数组名,格式如下:数组元素类型 数组名 ; 例: int a;数组元素类型 数组名;例: int a;数组的声明和对象引用的含义相同,只表示某个数组,并没有对应的内存空间。 3.5 数组数组2、创建数组空间 创建是给数组分配内存空间,它可以直接使用new运算符,也可以直接用枚举来创建。格式如下:数组名数组名 = new 数组元素类型数组元素类型数组长度数组长度;创建
3、数组空间的工作可以和声明数组的工作组合在一起,用一条语句来实现。int a; a= new int20; 等价于:int a= new int20;或者使用枚举创建数组: int num = 1, 2, 3, 4 ;3.5 数组数组3、初始化数组 数组中的各元素是有先后次序的,每个数组元素用数组的名字和它在数组中的位置来表达。在上一节创建的数组a中,a0表示数组a中的第一个元素,a1表示数组a中的第二个元素,依次类推,数组中的最后一个元素为a19初始化数组就是要使数组中的各个元素有确定的数值如果数组元素的类型是基本数据类型,由于基本数据类型都有缺省值,数组元素都自动初始化为缺省值。对于以某个类
4、的对象为数组元素的数组,初始化每个数组元素是必须的。注意:所有的数组都有一个属性length,这个属性存储了数组元素的个数。注意检查数组下标是否越界3.5 数组数组3.5.2 初始化一维数组初始化是为定义好的数组进行赋值,如用枚举法定义的数组就不需要初始化了。而用new运算符定义的数组则需要根据实际情况赋值根据数组类型,一般分为简单类型数组(数组的元素为8种基本类型)和复杂类型数组(数组元素为其它类)简单类型数组在用new运算符建立时既分配了内存空间又赋上了初始默认值复杂类型数组建立之后每个元素都是空值3.5 数组数组数组默认值参见下表3.5 数组数组3.5.3 数组复制java.lang.S
5、ystem.arraycopy(from,fromIndex,to,toIndex,count)数组的复制可以利用以上方法进行。该方法从数组from的索引fromIndex位置起,复制count个元素到数组to的从索引toIndex位置开始的地方。这里要注意,目标数组必须在调用arraycopy之前分配内存,而且这个内存空间必须足够容纳被复制的数据。 3.5 数组数组3.5.4 多维数组的使用Java没有专门的语法支持多维数组,但Java数组可以放置任何类型的元素,把一维数组放入数组内,那就成了二维数组二维数组的定义语法如下:数组元素类型数组元素类型 数组名数组名 = new 数组元素类型数组
6、元素类型数组长度数组长度;或者 数组元素类型数组元素类型 数组名数组名=new 数组元素类型数组元素类型数组长度数组长度;多维数组也可以使用枚举定义。由于二维数组在定义时只声明了数组的长度,所以在用new运算符声明二维数组后,都要为数组初始化。例:使用new运算符定义二维数组,并初始化。 3.5 数组数组3.5.5 数组类的使用:在“java.util”包中,提供一个数组类Arrays,该类提供了一些方法用于排序、查找等操作,在编制程序中可以直接使用这些方法。1、排序排序直接使用sort方法,来对数组做升序排序。sort方法常见的使用形式如下:publicstaticvoidsort(Xxxa
7、)该方法用改进的快速排序方法对指定的数组a进行排序,其中数组a是类型为char、byte、short、int、long、float、double或者boolean的一个数组。sort方法还有另外一种常见的形式:publicstaticvoidsort(Xxxa,intfromIndex,inttoIndex)这种形式只对数组a中指定范围内的元素(从afromIndex到atoIndex之间的元素,其中不包含atoIndex)排序。例:为整型数组排序3.5 数组数组2、查找publicstaticintbinarySearch(Xxxa,Xxxv);该方法用折半查找算法在指定的数组a查找值为v的
8、元素。其中数组a是类型为char、byte、short、int、long、float、double或者boolean的一个数组,v是与数组a的元素类型相同的值该方法如果在数组a查找到值为v的元素,则返回该元素的下标;如果没有找到匹配的元素,则返回一个负值r,位置-(r+1)为保持数组有序时值为v的元素应该插入的位置3.5 数组数组3、填充publicstaticvoidfill(Xxxa,Xxxv)该方法用指定的值v来填充数组a,执行该方法的结果是:数组a中所有元素的值都变成v其中数组a是类型为char、byte、short、int、long、float、double或者boolean的一个数组。