![TP09集合框架PPT课件_第1页](http://file3.renrendoc.com/fileroot_temp3/2022-2/27/91d8504f-a8b0-400c-b345-16b6b0d313e8/91d8504f-a8b0-400c-b345-16b6b0d313e81.gif)
![TP09集合框架PPT课件_第2页](http://file3.renrendoc.com/fileroot_temp3/2022-2/27/91d8504f-a8b0-400c-b345-16b6b0d313e8/91d8504f-a8b0-400c-b345-16b6b0d313e82.gif)
![TP09集合框架PPT课件_第3页](http://file3.renrendoc.com/fileroot_temp3/2022-2/27/91d8504f-a8b0-400c-b345-16b6b0d313e8/91d8504f-a8b0-400c-b345-16b6b0d313e83.gif)
![TP09集合框架PPT课件_第4页](http://file3.renrendoc.com/fileroot_temp3/2022-2/27/91d8504f-a8b0-400c-b345-16b6b0d313e8/91d8504f-a8b0-400c-b345-16b6b0d313e84.gif)
![TP09集合框架PPT课件_第5页](http://file3.renrendoc.com/fileroot_temp3/2022-2/27/91d8504f-a8b0-400c-b345-16b6b0d313e8/91d8504f-a8b0-400c-b345-16b6b0d313e85.gif)
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第九章第九章写出运行结果写出运行结果public class Test public static void main(String args) int a = 0, 1, 2, 3, 4; int sum = 0; try for (int i = 1; i 6; i+) sum = sum + ai; System.out.println(sum= + sum); catch (ArrayIndexOutOfBoundsException e) System.out.println(数组越界数组越界); finally System.out.println(程序结束程序结束); 数组越界数
2、组越界 程序结束程序结束 回顾与作业点评public class Test public static void main(String args) int numOne = 10; int numTwo = 0; try int c = numOne/numTwo; catch (ArithmeticException ex) System.out.println(除数不能为除数不能为0); catch (Exception ex) System.out.println(发现异常发现异常); finally System.out.println(这是这是finally); 除数不能为除数不能
3、为0这是这是finally public class Test public void add(int i) throws NullPointerException if(i=0) throw new NullPointerException(); System.out.println(add出现异常出现异常); public static void main(String args) Test t = new Test(); try t.add(0); System.out.println(add方法返回方法返回); catch(Exception e) System.out.println
4、(捕获异常捕获异常); 捕获异常捕获异常 预习检查List、Map是否都继承自是否都继承自Collection接口接口 ?和数组采用相同存储结构的集合类型是什么?和数组采用相同存储结构的集合类型是什么?Iterator接口的作用是什么?接口的作用是什么?本章任务使用使用List保存和输出宠物信息保存和输出宠物信息使用使用Map保存和输出宠物信息保存和输出宠物信息使用使用Iterator遍历各种集合遍历各种集合使用泛型集合保存和输出宠物信息使用泛型集合保存和输出宠物信息本章目标掌握集合框架包含的内容掌握集合框架包含的内容掌握掌握ArrayList和和LinkedList的使用的使用掌握掌握Has
5、hMap的使用的使用掌握掌握Iterator的使用的使用掌握泛型集合的使用掌握泛型集合的使用学学员员1学学员员20如何存储每天的新闻信息?如何存储每天的新闻信息?如何存储如何存储ACCP课程的代码与课程信息,能够通课程的代码与课程信息,能够通过代码方便地获得课程信息?过代码方便地获得课程信息?如果并不知道程序运行时会需要多少对象,或者需要更复杂方式存储如果并不知道程序运行时会需要多少对象,或者需要更复杂方式存储对象对象可以使用可以使用Java集合框架集合框架一维数组一维数组代码代码1代码代码N课程课程1课程课程N一一对应一一对应新闻新闻1新闻新闻N每天的新闻总数不每天的新闻总数不确定,太少浪费
6、空确定,太少浪费空间,太多空间不足间,太多空间不足存储一个班学员信息,假定一个班容纳存储一个班学员信息,假定一个班容纳20名学员名学员为什么使用集合框架 1接口接口CollectionListMap2具体类具体类ArrayListLinkedListHashMap3算法算法Java集合框架为我们提供了一套性能优良、使用方便的接口和类,它们集合框架为我们提供了一套性能优良、使用方便的接口和类,它们位于位于java.util包中包中我们不必再重新发明轮子,只需学会如何使用它们,就可处理实际应用中我们不必再重新发明轮子,只需学会如何使用它们,就可处理实际应用中问题问题 Collections提供了对
7、集合进行排序、提供了对集合进行排序、遍历等多种算法实现遍历等多种算法实现Java集合框架包含的内容2-1SetTreeSetHashSetTreeMapJava集合框架包含的内容2-2Collection 接口存储一组接口存储一组不唯一,无序不唯一,无序的对象的对象List 接口存储一组接口存储一组不唯一不唯一,有序有序(插入顺序)的对象(插入顺序)的对象Set 接口存储一组接口存储一组唯一唯一,无序无序的对象的对象 Map接口存储一组键值对象,提供接口存储一组键值对象,提供key到到value的映射的映射 CollectionListMapSetList接口的实现类 ArrayList实现了
8、长度可变的数组,在内存中分配连续实现了长度可变的数组,在内存中分配连续的空间。遍历元素和随机访问元素的效率比较高的空间。遍历元素和随机访问元素的效率比较高LinkedList采用链表存储方式。插入、删除元素时效率采用链表存储方式。插入、删除元素时效率比较高比较高ListArrayListLinkedListArrayList集合类5-1存储多条狗狗信息,获取狗狗总数,逐条打存储多条狗狗信息,获取狗狗总数,逐条打印出各条狗狗信息印出各条狗狗信息 通过通过List接口的实现类接口的实现类ArrayList实现该需求实现该需求元素个数不确定元素个数不确定要求获得元素的实际个数要求获得元素的实际个数按
9、照存储顺序获取并打印元素信息按照存储顺序获取并打印元素信息ArrayList集合类5-2 public class Test1 public static void main(String args) Dog ououDog = new Dog(欧欧欧欧, 雪娜瑞雪娜瑞);Dog yayaDog = new Dog(亚亚亚亚, 拉布拉多拉布拉多);Dog meimeiDog = new Dog(美美美美, 雪娜瑞雪娜瑞);Dog feifeiDog = new Dog(菲菲菲菲, 拉布拉多拉布拉多);List dogs = new ArrayList();dogs.add(ououDog);d
10、ogs.add(yayaDog);dogs.add(meimeiDog);dogs.add(2, feifeiDog); / 添加添加feifeiDog到指定位置到指定位置System.out.println(共计有共计有 + dogs.size() + 条狗狗。条狗狗。);System.out.println(分别是:分别是:);for (int i = 0; i dogs.size(); i+) Dog dog = (Dog) dogs.get(i);System.out.println(dog.getName() + t+ dog.getStrain();创建创建ArrayList对象并
11、把四个对象并把四个狗狗对象放入其中狗狗对象放入其中输出狗狗的数量输出狗狗的数量获取第获取第i i个元素个元素 演示示例:使用演示示例:使用ArrayList集合类集合类ArrayList集合类5-3扩充以下几部分功能扩充以下几部分功能删除指定位置的狗狗,如第一个狗狗删除指定位置的狗狗,如第一个狗狗删除指定的狗狗,如删除删除指定的狗狗,如删除feifeiDog对象对象判断集合中是否包含指定狗狗判断集合中是否包含指定狗狗List接口提供相应方法接口提供相应方法remove()、contains(),直接使用即可直接使用即可 ArrayList集合类5-4 public class Test2 pu
12、blic static void main(String args) / 1、创建多个狗狗对象、创建多个狗狗对象/ 2、创建、创建ArrayList集合对象并把多个狗狗对象放入其中集合对象并把多个狗狗对象放入其中System.out.println(删除之前共计有删除之前共计有 +dogs.size() + 条狗狗。条狗狗。);dogs.remove(0);dogs.remove(feifeiDog);System.out.println(n删除之后还有删除之后还有 + dogs.size() + 条狗狗。条狗狗。);if(dogs.contains(meimeiDog)System.out.
13、println(n集合中包含美美的信息集合中包含美美的信息);elseSystem.out.println(n集合中不包含美美的信息集合中不包含美美的信息);删除第一个狗狗和删除第一个狗狗和feifeiDog判断是否包含指定狗狗判断是否包含指定狗狗演示示例:使用演示示例:使用ArrayList集合类集合类ArrayList集合类5-5List接口常用方法接口常用方法 方法名说 明boolean add(Object o)在列表的末尾顺序添加元素,起始索引位在列表的末尾顺序添加元素,起始索引位置从置从0 0开始开始void add(int index,Object o)在指定的索引位置添加元素。
14、索引位置必在指定的索引位置添加元素。索引位置必须介于须介于0 0和列表中元素个数之间和列表中元素个数之间int size()返回列表中的元素个数返回列表中的元素个数Object get(int index)返回指定索引位置处的元素。取出的元素返回指定索引位置处的元素。取出的元素是是ObjectObject类型,使用前需要进行强制类型类型,使用前需要进行强制类型转换转换boolean contains(Object o)判断列表中是否存在指定元素判断列表中是否存在指定元素boolean remove(Object o)从列表中删除元素从列表中删除元素Objectremove(int index)
15、从列表中删除指定位置元素,起始索引位从列表中删除指定位置元素,起始索引位置从置从0 0开始开始练习添加多个企鹅信息到List中需求说明:需求说明:把多个企鹅的信息添加到集合中把多个企鹅的信息添加到集合中查看企鹅的数量查看企鹅的数量遍历所有企鹅的信息遍历所有企鹅的信息删除集合中部分企鹅的元素删除集合中部分企鹅的元素判断集合中是否包含指定企鹅判断集合中是否包含指定企鹅 完成时间:完成时间:20分钟分钟共性问题集中讲解n常见调试问题及解决办法常见调试问题及解决办法n代码规范问题代码规范问题共性问题集中讲解共性问题集中讲解LinkedList集合类3-1在集合任何位置(头部、中间、尾部)添加、在集合任
16、何位置(头部、中间、尾部)添加、获取、删除狗狗对象获取、删除狗狗对象插入、删除操作频繁时,可使用插入、删除操作频繁时,可使用LinkedList来来提高效率提高效率LinkedList还额外提供对头部和尾部元素进行还额外提供对头部和尾部元素进行添加和删除操作的方法添加和删除操作的方法 LinkedList集合类3-2public class Test3 public static void main(String args) / 创建多个狗狗对象创建多个狗狗对象LinkedList dogs = new LinkedList();dogs.add(ououDog);dogs.add(yayaD
17、og);dogs.addLast(meimeiDog);dogs.addFirst(feifeiDog);Dog dogFirst= (Dog)dogs.getFirst();System.out.println(第一条狗狗昵称是第一条狗狗昵称是+dogFirst.getName() );Dog dogLast= (Dog)dogs.getLast();System.out.println(最后一条狗狗昵称是最后一条狗狗昵称是+dogLast.getName();dogs.removeFirst();dogs.removeLast();创建创建LinkedList集合对象并把集合对象并把多个狗
18、狗对象放入其中多个狗狗对象放入其中获取第一条狗狗信息获取第一条狗狗信息获取最后一条狗狗信息获取最后一条狗狗信息删除第一个狗狗和最后删除第一个狗狗和最后一个狗狗一个狗狗演示示例:使用演示示例:使用LinkedList集合类集合类LinkedList集合类3-3LinkedList的特殊方法的特殊方法方法名说 明voidaddFirst(Object o)在列表的首部添加元素在列表的首部添加元素voidaddLast(Object o)在列表的末尾添加元素在列表的末尾添加元素ObjectgetFirst()返回列表中的第一个元素返回列表中的第一个元素ObjectgetLast()返回列表中的最后一
19、个元素返回列表中的最后一个元素ObjectremoveFirst()删除并返回列表中的第一个元素删除并返回列表中的第一个元素ObjectremoveLast()删除并返回列表中的最后一个元素删除并返回列表中的最后一个元素小结集合框架有何好处?集合框架有何好处? Java集合框架中包含哪些接口和哪些类?集合框架中包含哪些接口和哪些类?ArrayList和和LinkedList有何异同?有何异同?用纸笔绘制用纸笔绘制List接口和两个实现类的类图接口和两个实现类的类图 Map接口3-1 建立国家英文简称和中文全名间的键值映射,建立国家英文简称和中文全名间的键值映射,并通过并通过key对对value
20、进行操作,应该如何实现数进行操作,应该如何实现数据的存储和操作呢?据的存储和操作呢? Map接口专门处理键值映射数据的存储,可以接口专门处理键值映射数据的存储,可以根据键实现对值的操作根据键实现对值的操作最常用的实现类是最常用的实现类是HashMap Map接口3-2 public class Test4 public static void main(String args) Map countries = new HashMap();countries.put(CN, 中华人民共和国中华人民共和国);countries.put(RU, 俄罗斯联邦俄罗斯联邦);countries.put(F
21、R, 法兰西共和国法兰西共和国);countries.put(US, 美利坚合众国美利坚合众国);String country = (String) countries.get(CN);System.out.println(CN对应的国家是:对应的国家是: + country);System.out.println(Map中共有中共有+countries.size()+组数据组数据);countries.remove(FR);System.out.println(Map中包含中包含FR的的key吗?吗? + countries.containsKey(FR);System.out.printl
22、n( countries.keySet() ) ;System.out.println( countries.values() );System.out.println( countries );使用使用HashMap存储多存储多组键值对组键值对获取获取Map元素个数元素个数删除指定元素,判断是删除指定元素,判断是否包含指定元素否包含指定元素显示键集、值集和键值对集显示键集、值集和键值对集获取指定元素的值获取指定元素的值演示示例:使用演示示例:使用HashMap集合类集合类Map接口3-3Map接口接口常用方法常用方法方法名说 明Object put(Object key, Object va
23、l)以以“键键- -值对值对”的方式进行存储的方式进行存储Object get (Object key)根据键返回相关联的值,如果不根据键返回相关联的值,如果不存在指定的键,返回存在指定的键,返回nullnullObject remove (Object key)删除由指定的键映射的删除由指定的键映射的“键键- -值对值对”int size()返回元素个数返回元素个数Set keySet ()返回键的集合返回键的集合Collection values ()返回值的集合返回值的集合booleancontainsKey (Object key)如果存在由指定的键映射的如果存在由指定的键映射的“键键
24、- -值对值对”,返回,返回truetrue集合类对比Vector和和ArrayList的异同的异同实现原理相同,功能相同,很多情况下可以互用实现原理相同,功能相同,很多情况下可以互用两者的主要区别如下两者的主要区别如下Vector线程安全,线程安全,ArrayList重速度轻安全,线程非安全重速度轻安全,线程非安全长度需增长时,长度需增长时,Vector默认增长一倍,默认增长一倍,ArrayList增长增长50%Hashtable和和HashMap的异同的异同实现原理相同,功能相同,在很多情况下可以互用实现原理相同,功能相同,在很多情况下可以互用两者的主要区别如下两者的主要区别如下Hasht
25、able继承继承Dictionary类,类,HashMap实现实现Map接口接口Hashtable线程安全,线程安全,HashMap线程非安全线程非安全Hashtable不允许不允许null值,值,HashMap允许允许null值值开发过程中,最好使用开发过程中,最好使用ArrayList和和HashMap练习根据宠物昵称查找宠物需求说明:需求说明:根据宠物昵称查找对应宠物,如果找到,显示宠根据宠物昵称查找对应宠物,如果找到,显示宠物信息,否则给出错误提示物信息,否则给出错误提示 完成时间:完成时间:15分钟分钟共性问题集中讲解n常见调试问题及解决办法常见调试问题及解决办法n代码规范问题代码规
26、范问题共性问题集中讲解共性问题集中讲解迭代器Iterator2-1如何遍历如何遍历List集合呢?集合呢?方法方法1:通过:通过for循环和循环和get()方法配合实现遍历方法配合实现遍历方法方法2:通过迭代器:通过迭代器Iterator实现遍历实现遍历 所有集合接口和类都没有提供相应遍历方法,而是所有集合接口和类都没有提供相应遍历方法,而是由由Iterator实现集合遍历实现集合遍历Collection 接口的接口的iterate()方法返回一个方法返回一个Iterator,然后通过然后通过Iterator接口的两个方法可实现遍历接口的两个方法可实现遍历boolean hasNext():
27、判断是否存在另一个可访问的元素判断是否存在另一个可访问的元素 Object next(): 返回要访问的下一个元素返回要访问的下一个元素迭代器Iterator2-2public class Test5 public static void main(String args) / 1、创建多个狗狗对象、创建多个狗狗对象Dog ououDog = new Dog(欧欧欧欧, 雪娜瑞雪娜瑞);/ 2、创建、创建ArrayList集合对象并把多个狗狗对象放入其中集合对象并把多个狗狗对象放入其中List dogs = new ArrayList ();dogs.add(ououDog);System.o
28、ut.println(使用使用Iterator遍历,所有狗狗昵称和品种是遍历,所有狗狗昵称和品种是:);Iterator it = dogs.iterator();while (it.hasNext() Dog dog = (Dog) it.next();System.out.println(dog.getName()+t+dog.getStrain();通过迭代器依次输出所通过迭代器依次输出所有狗狗的信息有狗狗的信息演示示例:使用演示示例:使用Iterator遍历集合遍历集合练习迭代List中企鹅信息需求说明:需求说明:使用使用ArrayList和和LinkedList存储多个企鹅信息,存储
29、多个企鹅信息,然后统一使用然后统一使用Iterator进行遍历进行遍历 完成时间:完成时间:15分钟分钟共性问题集中讲解n常见调试问题及解决办法常见调试问题及解决办法n代码规范问题代码规范问题共性问题集中讲解共性问题集中讲解泛型集合3-1把任何类型对象通过把任何类型对象通过add(Object obj) 放入放入List中,认中,认为只是为只是Object类型类型通过通过get(int index) 取出取出List中元素时必须进行强制类中元素时必须进行强制类型转换,繁琐而且容易出现异常型转换,繁琐而且容易出现异常使用使用Map的的put(Object key, Object value)和和
30、get (Object key)存取对象时存在同样问题存取对象时存在同样问题使用使用Iterator的的next()方法获取元素时存在同样问题方法获取元素时存在同样问题JDK5.0中通过引入泛型有效的解决了这个问题中通过引入泛型有效的解决了这个问题JDK5.0使用泛型改写了集合框架中的所有接口和类使用泛型改写了集合框架中的所有接口和类泛型集合3-2public class Test6 public static void main(String args) / 1、创建多个狗狗对象、创建多个狗狗对象Dog dog1 = new Dog(欧欧欧欧, 雪娜瑞雪娜瑞);/ 2、创建、创建ArrayList集合对象并把多个狗狗对象放入其中集合对象并把多个狗狗对象放入其中List dogs = new ArrayList();dogs.add(dog1);/dogs.add(hello); / 3、 显示第三个元素的信息显示第三个元素的信息Dog dog = dogs.get(2); System.out.println(第三个狗狗的信息如下:第三个狗狗的信息如下:);System.out.println(dog.getName() + t + dog.getStrain();/4、使用、使用Iterator遍历遍历dogs对象对象System.out.println(n所有
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 部编版道德与法治九年级下册第二单元第三课《与世界紧相连第2框与世界深度互动》听课评课记录
- 2022版新课标七年级上册道德与法治第五课交友的智慧2课时听课评课记录
- 人教版数学九年级上册《直接开平方法解方程》听评课记录3
- 人教版地理八年级下册7.1《自然特征与农业》听课评课记录
- 环境评估服务合同(2篇)
- 湘教版数学八年级上册2.2《命题的证明》听评课记录2
- 北师大版道德与法治九年级上册6.2《弘扬法治精神》听课评课记录
- 北京课改版历史八年级上册第10课《辛亥革命与中华民国建立》听课评课记录
- 湘教版数学七年级上册《2.5整式的加法和减法(1)》听评课记录2
- 部编版八年级历史上册《第1课 鸦片战争》听课评课记录
- 2024年临床医师定期考核试题中医知识题库及答案(共330题) (二)
- 2025-2030年中国反渗透膜行业市场发展趋势展望与投资策略分析报告
- 湖北省十堰市城区2024-2025学年九年级上学期期末质量检测道德与法治试题 (含答案)
- 山东省潍坊市2024-2025学年高三上学期1月期末 英语试题
- 春节节后收心会
- 《榜样9》观后感心得体会四
- 七年级下册英语单词表(人教版)-418个
- 2025年山东省济宁高新区管委会“优才”招聘20人历年高频重点提升(共500题)附带答案详解
- 2025年中国社会科学评价研究院第一批专业技术人员招聘2人历年高频重点提升(共500题)附带答案详解
- 交警安全进校园课件
- (2024年高考真题)2024年普通高等学校招生全国统一考试数学试卷-新课标Ⅰ卷(含部分解析)
评论
0/150
提交评论