- 2
- 0
- 约2.65千字
- 约 52页
- 2018-06-30 发布于四川
- 举报
java实用程序设计(西电版)第五章容器类
5.1 容器的概念与相互关系 Java容器类的对象实例又称为容器,容器用于保存对象。根据所存储的元素的形式,可将容器按照接口不同划分为两大类: (1) Collection:一个由一系列元素组成的序列,其中的元素是指向其他对象的引用。 (2) Map:一个由一系列“键值对”组成的序列,允许通过键查找值。 图5-1 容器层次的简要结构 5.2 Set接口及其实现 Set不接受重复的元素。Java SE中提供3种Set容器的实现:HashSet、TreeSet和LinkedHashSet。HashSet类采用Hash表实现Set接口,它的查询速度最快,但其中的元素没有固定顺序;TreeSet类采用红黑树结构实现了SortedSet接口,能够保证元素处于排序状态;LinkedHashSet类采用Hash表与链表结合的方式实现Set接口,它能够以插入顺序保存元素。 5.3 List接口及其实现 与数组类似地,List也可以建立数字索引与具体对象的关联,区别在于List可以自动扩充容量。Java SE中有两种类型的List:ArrayList和LinkedList。 5.4 Queue接口及其实现 Queue是一种先进先出(FIFO)的容器。程序从Queue的一端放入对象,从另一端取出对象,对象进入和取出的顺序是相同的。在Java SE中,LinkedList实现了Queue接口,因此LinkedList可以用作Queue的一种实现。 5.5 Map接口及其实现 Map是一系列“键-值”之间的映射关系,是一种将对象(而非数字)与对象相关联的设计。在很多情况下,这一设计都能够有效地解决问题,例如,当我们需要统计一篇论文中的各个英文单词的个数时,可创建一个由String映射到Integer的Map。Map的值可以是复杂的结构,例如,当希望将一个科学家与其发表的论文列表建立映射时,可以建立一个MapScientist,ListPaper。 5.6 迭 代 器 List容器可以通过索引对其中的元素进行访问,Queue可以通过具体方法对队首的元素进行访问。对于不同类型的容器,遍历和操作的方式是不同的。但是在有些时候,需要应对这样的情况,对于不同类型的容器,我们希望能够通过同样的方式执行访问,这样就不需要根据不同的容器类型进行不同的编码。容器的迭代器(Iterator)针对这一需求给出了解决方法。 迭代器具有如下特征: (1) 迭代器只能单向移动; (2) 使用容器的iterator()方法返回容器的迭代器,迭代器准备返回容器的第一个元素; (3) 使用next()方法获得序列的下一个元素; (4) 使用hasNext()方法检查序列中是否还有元素; (5) 使用remove()将迭代器新近返回的元素(即由next()产生的最后一个元素)删除,因此在调用remove()之前必须先调用next()。 ListIterator是Iterator的子类型,它只能用于各类List容器的访问。通过List接口的listIterator方法能够返回用于List容器的ListIterator。与一般迭代器相比,ListIterator的功能更全面,除了具有Iterator接口所规定的行为特征以外,它还具有如下特征: (1) 使用hasPrevious()方法检查序列中是否有前一个元素; (2) 使用nextIndex()方法返回下一次next()方法调用将要返回的元素的索引; (3) 使用previous()方法返回序列中的前一个元素; (4) 使用previousIndex()方法返回下一次previous()方法调用将要返回的元素的索引; (5) 使用set()方法将上一次next()调用或previous()调用所返回的元素替换为参数所指定的元素; (6) 使用add()方法向序列中下一个next()被访问元素之前(亦即下一个previous()被访问元素之后)加入指定的元素。加入元素后,隐含指针在新加入元素之后,即调用next()的返回结果不变,而调用previous()的返回结果是新加入的元素。 5.7 容器类的高级话题 1. Comparable接口 Comparable接口为实现这个接口的类的每一个对象提供了一种全序关系,即如果一个类实现了Comparable接口,那么这个类的任意两个对象就可以比较大小。这样的一种全序关系又称为这个类的自然顺序。实际上,Comparable接口中只有一个compareTo()方法的声明。这个类中对com
您可能关注的文档
- chapter2arthrology(关节学).ppt
- chap_11公共物品及共有资源(经济学原理,曼昆,中英文双语).ppt
- clippers综合征(类固醇激素反应性慢性淋巴细胞性炎症.ppt
- cisco培训资料(思科uc技术入门).ppt
- ciss跨网通-物流管控系统.ppt
- cnnic中国域名产业报告(ppt格式).ppt
- communication 人际沟通能力培训 —如何运用有效沟通来解决工作中的问题.ppt
- cpu供电电路分析和故障检修.ppt
- coreldrawx4实用案例教程第六章对象编辑和辅助工具的.ppt
- 【广告策划】保利拉菲庄园营销全案.ppt
- 腾讯安全沙龙:红队视角下的海外SRC猎场:战略、战术与突破.pdf
- 【icap】ETS的范围扩展:设计和政策挑战.docx
- bcg -美国最高法院关于关税的裁决对你的企业意味着什么 What Does the US Supreme Court Ruling on Tariffs Mean for Your Business.pdf
- 2026届甘肃兰州市高三下学期第一次模拟考试历史试卷(扫描版,含答案).docx
- bcg -零售银行如何让人工智能代理发挥作用 How Retail Banks Can Put AI Agents to Work.pdf
- 住宅项目规范解读(GB 55038-2025) -培训 - 房地产-2025.docx
- 盘扣式脚手架工程量自动计算表 -培训 -房地产-2025.pdf
- 广东省汕头市2024-2025学年高三下学期第一次模拟考试英语学试题(含答案).docx
- 品牌研究+_+2025+CAPSE中国航司品牌榜单.pdf
- 【银河专题】如何看待豆粕内外价差关系.pdf
最近下载
- 《水利工程施工机械台时费定额》(〔2024〕323号).docx VIP
- 2025年度“五个带头”生活会个人对照检查材料.docx VIP
- 上海复宏汉霖生物制药有限公司生物医药产业化基地项目环保.pdf VIP
- 再一次看梵高梵高的基本介绍.pptx VIP
- 2025年全国高考体育单招考试模拟英语试卷试题(含答案详解).docx VIP
- 油田地面建设安全培训课件.pptx VIP
- 铁路综合视频监控系统工程施工组织设计.doc VIP
- 《城市轨道交通车站消防与给排水系统维护》 课件 01 给排水系统之概述.ppt
- TTMAC 003-2017 桥梁转体装置.pdf
- Klingelnberg(克林贝格)精密测量中心P系列P26用户手册.pdf
原创力文档

文档评论(0)