Java面向对象程序设计第章泛型与集合框架.ppt

上传人:小飞机 文档编号:6510316 上传时间:2023-11-07 格式:PPT 页数:14 大小:325KB
返回 下载 相关 举报
Java面向对象程序设计第章泛型与集合框架.ppt_第1页
第1页 / 共14页
Java面向对象程序设计第章泛型与集合框架.ppt_第2页
第2页 / 共14页
Java面向对象程序设计第章泛型与集合框架.ppt_第3页
第3页 / 共14页
Java面向对象程序设计第章泛型与集合框架.ppt_第4页
第4页 / 共14页
Java面向对象程序设计第章泛型与集合框架.ppt_第5页
第5页 / 共14页
点击查看更多>>
资源描述

《Java面向对象程序设计第章泛型与集合框架.ppt》由会员分享,可在线阅读,更多相关《Java面向对象程序设计第章泛型与集合框架.ppt(14页珍藏版)》请在三一办公上搜索。

1、第9章 泛型与集合框架,主讲:赵建邦办公室:信息学院202,2,本章主要内容,接口9.2 ArrayList类(数组表)9.3 LinkedList类(链表)9.4 Stack类(堆栈)9.5 HashMap类(散列映射)9.6 TreeSet类(树集)9.7 TreeMap类(树映射)难点:树映射,接口,Collection(容器)接口是Collection层次结构中的根接口Collection表示一组对象,这些对象也称为collection 的元素(Elements)JDK 不提供此接口的任何直接实现由Collection接口派生的两个接口是List和Set,JDK提供的容器类都是这些子接

2、口的类实现不论Collection的实际类型如何,它都支持一个iterator()的方法,该方法返回一个迭代子,可逐一访问Collection中每一个元素,接口,9.2 ArrayList类,java.util.ArrayList 类实现了 List 接口,用于表述长度可变的数组列表访问速度很快,插入与移除元素很慢,动态增长会不断复制原有List通过两个例子来理解以下几个内容:同质容器、异质容器 TestArrayList_02.java同质容器:用泛型符号来限定的容器数组表的增长方式toString()的原理 ArrayList_01.java,9.3 LinkedList类,链表由若干个节

3、点对象组成,分为单链表和双向链表插入与移除开销不大,访问较慢LinkedList类实现了链表泛型类常用方法:添加节点、删除节点、置空链表、替换节点、判断元素是否是已有链表元素等遍历链表使用迭代器 BoxingTest.java,9.4 Stack类,堆栈“后进先出”例:使用堆栈操作实现Fibonacci序列要比递归 效率更高Fibonacci.java,A,B,C,D,top,插入E,A,B,C,D,删除D,E,9.5 HashMap类,HashMap用于存储具有“键/值”对应关系的数据结构该泛型类创建的对象成为散列映射键不能出现冲突HashMap表会自动实现扩容常用方法:查询指定键、查询指定

4、值、添加、删除其中插入和查询的开销是固定的,Map的出现和ArrayList同理,不同的是,ArrayList用下标进行查找,Map用对象进行查找,它就像“字典”,9.5 HashMap类,HashMap构造方法:HashMap():构建一个初始容量为 16,负载因子为 0.75 的 HashMapHashMap(int initialCapacity):构建一个初始容量为 initialCapacity,负载因子为 0.75 的 HashMapHashMap(int initialCapacity,float loadFactor):以指定初始容量、指定的负载因子创建一个 HashMapHa

5、shMap 采用一种所谓的“Hash 算法”来决定每个元素的存储位置,依据Key计算 HashMapTest.java,9.6 TreeSet类,按照排序二叉树进行存储,TreeSet对象进行数据插入和查询的时候效率比HashSet低,因为TreeSet需要维持数据的有序性而必须进行排序。它适合于录入具有高度有序的数据集,9.7 TreeMap类,树结构可以保持元素的有序排列,因此实现了Map接口的TreeMap类不仅可以实现“键/值”映射,还能保持元素按照关键字有序排列元素保存机制:“红黑树”参考书“算法分析与设计”Michael T.G&Roberto T著,霍红卫译,人民邮电出版社例13

6、.9,总结,容器用来存储对象的集合,根据容器的类型可以实现有序或者无序存储Set接口:元素不能重复,使用add添加元素,自动排序常用实现类:HashSet(快速查找)、TreeSet(有序)List接口:可以重复,不做排序常用实现类:ArrayList、LinkedList、StackMap接口:保存“键/值”,使用put添加元素常用实现类:HashMap、TreeMap(有序),讨论:迭代器,迭代器是一个对象,它的工作是遍历并选择序列中的对象1、使用iterator()方法返回一个迭代器对象,第一次调用next()方法时,返回序列的第一个元素,以后返回下一个元素2、hasNext()检查是否还有元素3、可以使用remove()将最近返回的元素删除4、实现Map的容器需要调用keySet()或values()得到key或值的Set,谢谢!,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号