最新Java与面向对象程序设计实验教程第6章 数组和集合类(共42张PPT课件)

上传人:痛*** 文档编号:210682152 上传时间:2023-05-17 格式:PPTX 页数:42 大小:1.45MB
收藏 版权申诉 举报 下载
最新Java与面向对象程序设计实验教程第6章 数组和集合类(共42张PPT课件)_第1页
第1页 / 共42页
最新Java与面向对象程序设计实验教程第6章 数组和集合类(共42张PPT课件)_第2页
第2页 / 共42页
最新Java与面向对象程序设计实验教程第6章 数组和集合类(共42张PPT课件)_第3页
第3页 / 共42页
资源描述:

《最新Java与面向对象程序设计实验教程第6章 数组和集合类(共42张PPT课件)》由会员分享,可在线阅读,更多相关《最新Java与面向对象程序设计实验教程第6章 数组和集合类(共42张PPT课件)(42页珍藏版)》请在装配图网上搜索。

1、面向对象的程序设计第第 6 章章 数组和集合数组和集合(jh)类类 对外经济贸易大学信息对外经济贸易大学信息(xnx)学院学院第一页,共四十二页。面向对象的程序设计对外经济贸易大学 雷擎content6.1 数组数组6.2 集合框架集合框架6.3 枚举类型枚举类型(lixng)实验:数组实验:数组第二页,共四十二页。面向对象的程序设计对外经济贸易大学 雷擎6.1 数组数组o6.1.1 数组的声明数组的声明o6.1.2 数组的创建数组的创建o6.1.3 数组元素的初始化数组元素的初始化o6.1.4 数组的引用数组的引用(ynyng)o6.1.5 二维数组二维数组o6.1.6 数组的排序数组的排序

2、第三页,共四十二页。面向对象的程序设计对外经济贸易大学 雷擎数组的概念数组的概念(ginin)o数组由同一类型数组由同一类型(lixng)的一连串对象或基本数的一连串对象或基本数据组成,封装在同一个标识符(数组名称)据组成,封装在同一个标识符(数组名称)下。下。o数组是对象数组是对象n动态初始化动态初始化n可以赋值给可以赋值给Object类型的变量类型的变量n在数组中可以调用类在数组中可以调用类Object 的所有方法的所有方法第四页,共四十二页。面向对象的程序设计对外经济贸易大学 雷擎o数组中的变量被称作数组的元素数组中的变量被称作数组的元素o元素没有名字,通过数组名字和非负整数下元素没有名

3、字,通过数组名字和非负整数下标值引用标值引用(ynyng)数组元素。数组元素。o每个数组都有一个由每个数组都有一个由 public final 修饰的修饰的成员变量:成员变量:length,即数组含有元素的个,即数组含有元素的个数(数(length可以是正数或零)可以是正数或零)数组元素数组元素(yun s)第五页,共四十二页。面向对象的程序设计对外经济贸易大学 雷擎6.1.1 数组的声明数组的声明(shngmng)o声明(声明(Declaration)nType arrayName;或者或者nType arrayName;n声明数组时无需声明数组时无需(wx)指明数组元素的个数,也不为数指明

4、数组元素的个数,也不为数组元素分配内存空间组元素分配内存空间n不能直接使用,必须经过初始化分配内存后才能使用不能直接使用,必须经过初始化分配内存后才能使用第六页,共四十二页。面向对象的程序设计对外经济贸易大学 雷擎数组声明数组声明(shngmng)的例子的例子n例如例如(lr):nint myIntArray;nString myStringArray;nCircle myCircleArray;第七页,共四十二页。面向对象的程序设计对外经济贸易大学 雷擎6.1.2 数组的创建数组的创建(chungjin)arrayName=new Typecomponets number;n用关键字用关键字

5、new构成数组的创建表达式,可以指构成数组的创建表达式,可以指定数组的类型和数组元素的个数。元素个数可定数组的类型和数组元素的个数。元素个数可以是常量也可以是变量以是常量也可以是变量 n基本类型数组的每个元素都是一个基本类型数组的每个元素都是一个(y )基本类型基本类型的变量;引用类型数组的每个元素都是对象的的变量;引用类型数组的每个元素都是对象的的引用的引用 第八页,共四十二页。面向对象的程序设计对外经济贸易大学 雷擎数组创建数组创建(chungjin)的例子的例子o例如:例如:int ai;aI=new int10;String aS;aS=new String3;Circle aC;aC

6、=new Circle5o或者可以将数组的声明和创建或者可以将数组的声明和创建(chungjin)一并执行一并执行int ai=new int10;o可以在一条声明语句中创建多个数组可以在一条声明语句中创建多个数组 String s1=new String3,s2=new String8;第九页,共四十二页。面向对象的程序设计对外经济贸易大学 雷擎6.1.3 数组元素数组元素(yun s)的初始化的初始化o数组元素的类型与声明的数组数据类型保持数组元素的类型与声明的数组数据类型保持一致,每一个数组元素都相当于一个变量,一致,每一个数组元素都相当于一个变量,进行需要对象初始化。进行需要对象初始化

7、。o基本类型的数组,可以在声明数组名时,给基本类型的数组,可以在声明数组名时,给出了数组的初始值。程序出了数组的初始值。程序(chngx)便会利用数组便会利用数组初始值创建数组并对它的各个元素进行初始初始值创建数组并对它的各个元素进行初始化化。例如:。例如:inta=22,33,44,55;第十页,共四十二页。面向对象的程序设计对外经济贸易大学 雷擎6.1.3 数组元素数组元素(yun s)的初始化的初始化o创建数组的时,如果没有指定初始值,数组创建数组的时,如果没有指定初始值,数组便被赋予默认值初始值。便被赋予默认值初始值。n基本类型数值数据,默认基本类型数值数据,默认(mrn)的初始值为的

8、初始值为0;nboolean类型数据,默认值为类型数据,默认值为false;n引用类型元素的默认值为引用类型元素的默认值为null。o程序也可以在数组被构造之后改变数组元素程序也可以在数组被构造之后改变数组元素值值第十一页,共四十二页。面向对象的程序设计对外经济贸易大学 雷擎数组元素数组元素(yun s)初始化的例子初始化的例子int aI;aI=new int10;String aS;aS=new String3;Circle aC;aC=new Circle5;int k=0;for(k=0;k10;k+)aIk=k*k;aS0=aaa;aS1=new String(bbb);aS3=ne

9、w String(ccc);for(k=0;k5;k+)aCk=new Circle();第十二页,共四十二页。面向对象的程序设计对外经济贸易大学 雷擎6.1.4 数组的引用数组的引用(ynyng)arrayName index o数组下标限制数组下标限制n下标从零开始计数,最大值为下标从零开始计数,最大值为 length 1,如果超过最大值,将会产生数组越界异常如果超过最大值,将会产生数组越界异常(ArrayIndexOutOfBoundsException)n必须是必须是 int,short,byte,或者或者 char.o元素元素(yun s)的个数即为数组的长度,可以通过的个数即为数组

10、的长度,可以通过 arrayName.length引用引用第十三页,共四十二页。面向对象的程序设计对外经济贸易大学 雷擎public class MyArray public static void main(String args)int myArray;/声明数组声明数组 myArray=new int10;/创建数组创建数组 System.out.println(IndexttValue);for(int i=0;imyArray.length;i+)System.out.println(i+tt+myArrayi);/证明数组元素证明数组元素(yun s)默认初始化为默认初始化为0 /

11、myArray10=100;/将产生数组越界异常将产生数组越界异常 数组引用数组引用(ynyng)例子例子第十四页,共四十二页。面向对象的程序设计对外经济贸易大学 雷擎数组变量名是一个数组变量名是一个(y )引用引用public class AA public static void main(String args)int a1=1,2,3,4,5;int a2;a2=a1;for(int i=0;i a2.length;i+)a2i+;for(int i=0;i a1.length;i+)System.out.println(a1+i+=+a1i);运行运行(ynxng)(ynxng)结结

12、果:果:a10=a10=2 2a11=a11=3 3a12=a12=4 4a13=a13=5 5a14=6a14=6第十五页,共四十二页。面向对象的程序设计对外经济贸易大学 雷擎6.1.5 二维数组二维数组o二维数组的声明二维数组的声明Type arrayName;或者或者(huzh)Type arrayName ;o二维数组的创建二维数组的创建arrayName=new Typelength1length2第十六页,共四十二页。面向对象的程序设计对外经济贸易大学 雷擎二维数组例子二维数组例子(l zi)nint a1;omyArray 可以存储可以存储(cn ch)一个指向一个指向2维整数数

13、组维整数数组的引用。其初始值为的引用。其初始值为null。nint a2=new int35;o建立一个数组对象,把引用存储到建立一个数组对象,把引用存储到myArray。这。这个数组所有元素的初始值为零。个数组所有元素的初始值为零。nint a3=8,1,2,2,9,1,9,4,3,7;o建立一个数组并为每一个元素赋值。建立一个数组并为每一个元素赋值。第十七页,共四十二页。面向对象的程序设计对外经济贸易大学 雷擎二维数组的长度二维数组的长度(chngd)public class AA public static void main(String args)int a3=1,2,3,3,4,5

14、,6,7,8;System.out.println(a3.length);System.out.println(a30.length);System.out.println(a31.length);System.out.println(a32.length);运行(ynxng)结果3324第十八页,共四十二页。面向对象的程序设计对外经济贸易大学 雷擎二维数组的实现二维数组的实现(shxin)过程过程int myArray;myArray=new int3 ;myArray0=new int3;int x=0,2;int y=0,1,2,3,4;myArray1=x;myArray2=y;第十九

15、页,共四十二页。面向对象的程序设计对外经济贸易大学 雷擎6.1.6 数组的排序数组的排序(pi x)o在在java的的API里面里面(lmin)实现了数组排序功实现了数组排序功能。在能。在java.util.Arrays类有静态方法类有静态方法sort就是实现这个功能。就是实现这个功能。第二十页,共四十二页。面向对象的程序设计对外经济贸易大学 雷擎public class Test6_5 public static void main(String args)Student ss=new Student new Student(1,iven),new Student(2,tom),new St

16、udent(3,rose),new Student(3,jone);Arrays.sort(ss);for(int i=0;i ss.length;i+)System.out.println(ssi);第二十一页,共四十二页。面向对象的程序设计对外经济贸易大学 雷擎6.2 集合集合(jh)框架框架o6.2.1 集合框架集合框架(kun ji)接口接口o6.2.2 Collection接口接口o6.2.3 List接口接口o6.2.4 Set接口接口o6.2.5 Map接口接口o6.2.6 Collection和和Arrayso6.2.7 泛型泛型第二十二页,共四十二页。面向对象的程序设计对外经

17、济贸易大学 雷擎集合集合(jh)框架框架oJava语言的设计者对常用语言的设计者对常用(chn yn)的数据结的数据结构和算法做了一些规范(接口)和实现(具构和算法做了一些规范(接口)和实现(具体实现接口的类)。所有抽象出来的数据结体实现接口的类)。所有抽象出来的数据结构和算法统称为构和算法统称为Java集合框架(集合框架(Java Collection Framework)第二十三页,共四十二页。面向对象的程序设计对外经济贸易大学 雷擎第二十四页,共四十二页。面向对象的程序设计对外经济贸易大学 雷擎6.2.1 集合框架集合框架(kun ji)接口接口oJava语言的设计者对常用的数据结构和算

18、语言的设计者对常用的数据结构和算法做了一些规范(接口)和实现(具体实现法做了一些规范(接口)和实现(具体实现接口的类)。所有抽象出来的数据结构和算接口的类)。所有抽象出来的数据结构和算法统称法统称(tngchng)为为Java集合框架(集合框架(Java Collection Framework)第二十五页,共四十二页。面向对象的程序设计对外经济贸易大学 雷擎6.2.1 集合集合(jh)框架接口框架接口oJava2中的集合框架提供了一套设计优良的中的集合框架提供了一套设计优良的接口和类,使程序员操作成批的数据或对象接口和类,使程序员操作成批的数据或对象元素极为方便。元素极为方便。o这些接口和类

19、有很多对抽象数据类型操作的这些接口和类有很多对抽象数据类型操作的API,而这是我们常用的且在数据结构中熟,而这是我们常用的且在数据结构中熟知知(shzh)的。例如的。例如Maps,Sets,Lists,Arrays 等。等。第二十六页,共四十二页。面向对象的程序设计对外经济贸易大学 雷擎几种标准的集合几种标准的集合(jh)接口简化结构接口简化结构第二十七页,共四十二页。面向对象的程序设计对外经济贸易大学 雷擎6.2.2 Collection接口接口(ji ku)oCollection是最基本的集合接口,一个是最基本的集合接口,一个Collection代表代表(dibio)一组一组Object,

20、即,即Collection的元素(的元素(Elements)。)。o所有实现所有实现Collection接口的类都必须提供两个标接口的类都必须提供两个标准的构造函数:无参数的构造函数用于创建一个空准的构造函数:无参数的构造函数用于创建一个空的的Collection,有一个,有一个 Collection参数的构造参数的构造函数用于创建一个新的函数用于创建一个新的Collection,这个新的,这个新的Collection与传入的与传入的Collection有相同的元素。有相同的元素。第二十八页,共四十二页。面向对象的程序设计对外经济贸易大学 雷擎迭代迭代(di di)子子o不论不论Collect

21、ion的实际类型如何的实际类型如何(rh),它都支,它都支持一个持一个iterator()的方法,该方法返回一个的方法,该方法返回一个迭代子,使用该迭代子即可逐一访问迭代子,使用该迭代子即可逐一访问Collection中每一个元素中每一个元素Iterator it=collection.iterator();/获得获得一个迭代子一个迭代子 while(it.hasNext()Object obj=it.next();/得到下一个元素得到下一个元素 第二十九页,共四十二页。面向对象的程序设计对外经济贸易大学 雷擎6.2.3 List接口接口(ji ku)oList是有序的是有序的Collecti

22、on,使用此接口能,使用此接口能够精确的控制每个元素够精确的控制每个元素(yun s)插入的位置。插入的位置。o用户能够使用索引(元素在用户能够使用索引(元素在List中的位置)中的位置)来访问来访问List中的元素中的元素。oList允许有相同的元素。允许有相同的元素。第三十页,共四十二页。面向对象的程序设计对外经济贸易大学 雷擎o除了具有除了具有Collection接口必备的接口必备的iterator()方法外,方法外,List还提供一个还提供一个 listIterator()方法,返回一个方法,返回一个ListIterator接口,和接口,和标准的标准的Iterator接口相比,接口相比

23、,ListIterator多了一些多了一些 add()之类的方法,允许添加,之类的方法,允许添加,删除,设定元素,还能向前或向后遍历删除,设定元素,还能向前或向后遍历(bin l)。o实现实现List 接口的常用类有接口的常用类有LinkedList、ArrayList、Vector 和和Stack。第三十一页,共四十二页。面向对象的程序设计对外经济贸易大学 雷擎6.2.4 Set接口接口(ji ku)oSet是一种不包含重复的元素的是一种不包含重复的元素的CollectionoSet接口的常用具体接口的常用具体(jt)实现有实现有HashSet和和 TreeSet类类第三十二页,共四十二页。

24、面向对象的程序设计对外经济贸易大学 雷擎6.2.5 Map接口接口(ji ku)oMap接口接口(ji ku)不是不是Collection接口的继接口的继承。承。oMap接口用于维护键和值。该接口描述了从接口用于维护键和值。该接口描述了从不重复的键到值的映射。不重复的键到值的映射。o一个一个Map中不能包含相同的键,每个键只能中不能包含相同的键,每个键只能映射一个值。映射一个值。第三十三页,共四十二页。面向对象的程序设计对外经济贸易大学 雷擎oMap接口接口(ji ku)其特点是元素是成对出现的,其特点是元素是成对出现的,以键和值的形式体现出来,键要保证唯一性:以键和值的形式体现出来,键要保证

25、唯一性:常用类有:常用类有:HashMap、Hashtable、TreeMap。第三十四页,共四十二页。面向对象的程序设计对外经济贸易大学 雷擎6.2.6 Collections和和Arrayso两个类提供了封装器实现、数据结构算法和两个类提供了封装器实现、数据结构算法和数组相关数组相关(xinggun)的应用。的应用。nCollections 类中定义了多种集合操作方法,类中定义了多种集合操作方法,实现了对集合操作方法,实现了对集合元素的实现了对集合操作方法,实现了对集合元素的排序、取极值、排序、取极值、批量拷贝、集合结构转换、循批量拷贝、集合结构转换、循环移位以及匹配性检查等功能环移位以及

26、匹配性检查等功能nArrays类是对数组进行操作的工具类。可以用类是对数组进行操作的工具类。可以用一个数组生成一个对应的一个数组生成一个对应的List(asList),可),可以对数组元素进行排序(以对数组元素进行排序(sort)、查找)、查找(binarySearch)、比较)、比较(equals)、填)、填充(充(fill),等等。),等等。第三十五页,共四十二页。面向对象的程序设计对外经济贸易大学 雷擎6.2.7 泛型泛型o泛型的本质就是将所操作的数据类型参数泛型的本质就是将所操作的数据类型参数(cnsh)化,也就是说,该数据类型被指定为一化,也就是说,该数据类型被指定为一个参数个参数(

27、cnsh)。o在在Java中泛型主要是用来构建安全的集合中泛型主要是用来构建安全的集合第三十六页,共四十二页。面向对象的程序设计对外经济贸易大学 雷擎6.3 枚举枚举(mi j)类型类型o举类型是一个常量集合的数据类型。因为都举类型是一个常量集合的数据类型。因为都是常量,所以一个枚举类型中的字段名都要是常量,所以一个枚举类型中的字段名都要大写。在大写。在JAVA中,枚举类型的定义是通过中,枚举类型的定义是通过(tnggu)“enum”关键字进行的。关键字进行的。第三十七页,共四十二页。面向对象的程序设计对外经济贸易大学 雷擎小结小结(xioji)6.1 数组数组6.2 集合框架集合框架6.3

28、枚举枚举(mi j)类型类型第三十八页,共四十二页。面向对象的程序设计对外经济贸易大学 雷擎实验实验(shyn):数组:数组o实验实验(shyn)10:数组:数组BACK第三十九页,共四十二页。面向对象的程序设计对外经济贸易大学 雷擎知识点提示知识点提示(tsh):o理解理解n数组是同类型对象的集合数组是同类型对象的集合n数组的元素是对象数组的元素是对象n数组均需要声明、初始化后才能使用数组均需要声明、初始化后才能使用o掌握掌握(zhngw)n数组的定义、初始化和使用数组的定义、初始化和使用第四十页,共四十二页。面向对象的程序设计End of Chapter 6第四十一页,共四十二页。内容(nirng)总结第 6 章 数组和集合类。每个数组都有一个(y)由 public final 修饰的成员变量:length,即数组含有元素的个数(length可以是正数或零)。System.out.println(IndexttValue)。System.out.println(i+tt+myArrayi)。i+)a2i+。System.out.println(a3.length)第四十二页,共四十二页。

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!