1、第7章数组7.4 数组实用类数组实用类Arrays7.3 多维数组多维数组 7.2 对象数组对象数组7.1 基本数据类型的一维数组基本数据类型的一维数组教学要求:v 理解:二维数组的概念,二维数组的定义和使用,Arrays类的常用方法v 掌握:一维数组的定义和使用,基本的数组排序算法,对象数组的创建 7.1基本数据类型的一维数组 v 数组是指一组相同类型数据的集合。数组提供了一种把相关数据集合在一起的便利方法,应用很广泛。v 数组中的每个数据称为数组的元素,数组中的元素可以是任意类型的,既可以是基本数据类型,也可以是引用类型。v Java把数组作为对象来实现的,用new关键字创建数组,开辟其存
2、储空间,数组名是一个引用变量。7.1基本数据类型的一维数组(续)v数组的声明和创建,2步骤 1)声明数组变量及其类型(即每个元素所属的类型)2)使用new关键字创建数组,为数组对象分配存储空间v数组的声明和创建语句可以写在一起:数组类型 数组名;数组类型 数组名;new 数组类型数组长度 数组类型 数组名=new 数组类型数组长度;7.1基本数据类型的一维数组(续)v 数组初始化 数组在创建之后,每个元素会自动赋予其数据类型的默认值,如数值类型将赋0值,boolean类型将赋false等。如果需要,可以对数组进行显式的初始化,在定义数组的时候就给数组的每个元素赋值:将所有的初始值用括起来,每个
3、值之间用逗号“,”隔开。例如:int arr=new int1,2,3;char chs=new charH,E,L,L,O;7.1基本数据类型的一维数组(续)v元素的引用 数组中的每个元素都有一个索引,或者称为下标,代表了元素在数组中所处的位置。索引的范围:0 数组长度-1 元素的引用格式:设有:int arr=1,2,3;则数组名元素的索引 7.1基本数据类型的一维数组(续)v数组与for循环的结合运用:以数组元素的索引值作为循环变量,结合循环结构实现遍历数组中的所有元素。v一般格式:v示例for(i=0;iarr.length;i+)/对对arri的操作的操作7.1基本数据类型的一维数组
4、(续)v实例运用 从控制台输入若干整数,求其最大值和和值。用选择排序算法对数组进行升序排序。用冒泡排序算法对数组进行升序排序。7.2对象数组v 对象数组的各个元素均为对象。v 对象数组的创建除了用new开辟内存空间之外,还需要进一步地为每一个元素(都是对象)赋引用值。v 例如:String hello=new String3;hello0=“早上好”;hello1=“中午好”;hello2=“晚上好”;7.2对象数组(续)v 对象数组的各个元素均为对象。v 对象数组的创建除了用new开辟内存空间之外,还需要进一步地为每一个元素(都是对象)赋引用值。v 例如:v 示例 String hello=
5、new String3;hello0=“早上好”;hello1=“中午好”;hello2=“晚上好”;7.3多维数组 v数组的数组:理解多维数组的形成 多维数组可以看做是数组的数组,即数组中的每一个元素又是一个数组。7.3多维数组(续)v二维数组的定义v例如:int a=new int32;数组类型 数组名;数组类型 数组名;数组类型 数组名;7.3多维数组(续)v不规则的二维数组int b=new int3;b0=new int2;b1=new int3;b2=new int4;7.3多维数组(续)v二维数组的初始化v示例int a=1,2,3,4 ;int b=1,2,3 ,3,4,5 ;
6、7.3多维数组(续)v二维数组元素的引用 行标取值范围:0 第一维长度-1 列标取值范围:0 第二维长度-1。v示例数组名数组名行标行标列标列标7.4数组实用类Arraysvjava.util包中提供了一个用于操纵数组的实用类:java.util.Arrays,它提供了一系列的静态方法用于操纵数组。boolean equals(数组1,数组2):比较2个数组是否相同,2个数组必须是同种类型的,只有当2个数组的元素个数相同切对应位置的元素也相同时,才表示2个数组相同,返回true值。void fill(数组,值):将指定的值分配给数组的每一个元素。7.4数组实用类Arrays(续)void so
7、rt(数组):对数组中的元素按照升序排序。数组是数值类型和char型时,将按元素值由小到大排序。int binarySearch(数组,值):在调用此方法前必须先对数组进行排序,该方法按照二分查找算法查找数组是否包含指定的值,如果包含则返回该值在数组中的索引,如果不包含该值,则返回负值。String toString(数组):返回数组内容的字符串表示形式。v 使用上述方法时注意先使用import进行导入:import java.util.Arrays;本章小结 v Java的数组是对象,必须通过的数组是对象,必须通过new来创建。同一个数组元素所属的类来创建。同一个数组元素所属的类型相同,可以
8、是基本数据类型,也可以是对象类型。型相同,可以是基本数据类型,也可以是对象类型。v 用用new创建数组后,每个元素会被自动赋予其数据类型的默认值,例创建数组后,每个元素会被自动赋予其数据类型的默认值,例如,数值型数组的所有元素默认值为如,数值型数组的所有元素默认值为0值,值,boolean类型数组元素默类型数组元素默认值为认值为false,对象类型(如,对象类型(如String类型)数组元素的默认值为类型)数组元素的默认值为null。v 数组有一个数组有一个length成员变量,表示数组的长度,利用数组成员变量,表示数组的长度,利用数组名名.length可以读取这个值。可以读取这个值。v 数组
9、元素都有一个索引值,代表其在数组中所处的位置,索引从数组元素都有一个索引值,代表其在数组中所处的位置,索引从0开开始,最后一个元素的索引是数组名始,最后一个元素的索引是数组名.length-1。本章小结(续)v 如果数组的元素又是数组,则可以形成多维数组。如果数组的元素又是数组,则可以形成多维数组。v 二维数组的元素的访问形式为:数组名二维数组的元素的访问形式为:数组名行标行标列标列标,其中行标取值,其中行标取值范围是范围是0第一维长度第一维长度-1,列标取值范围是,列标取值范围是0第二维长度第二维长度-1。v java.util.Arrays类提供了一些有用的操纵数组的方法,如比较类提供了一
10、些有用的操纵数组的方法,如比较数组是否相同的数组是否相同的equals()方法,填充数组的方法,填充数组的fill()方法,对数组进方法,对数组进行升序排序的行升序排序的sort()方法,查找数组元素的方法,查找数组元素的binarySearch()方法方法等等。等等。编程练习题v 1创建创建double型数组型数组nums,含,含100个元素,各元素要求值为个元素,各元素要求值为0.01.0之之间的随机小数,求各元素的平均值。提示:随机小数的产生:间的随机小数,求各元素的平均值。提示:随机小数的产生:Math.random()方法,该方法可生成方法,该方法可生成0.01.0)之间的随机小数。之间的随机小数。v 2从控制台读入从控制台读入5个个int型数存入数组,先将数组元素逆序输出,再对数组型数存入数组,先将数组元素逆序输出,再对数组元素进行降序排序,然后再输出排好序的数组元素。元素进行降序排序,然后再输出排好序的数组元素。v 3定义一个定义一个2*3的数组,使数组中的每个元素的值为其两个下标的乘积。的数组,使数组中的每个元素的值为其两个下标的乘积。