- 1、本文档共26页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
7-集合容器
* * Version 5.0 集合容器 zhangxing 集合框架中的接口 所谓框架就是一个类库的集合。集合框架就是一个用来表示和操作集合的统一的架构,包含了实现集合的接口与类。 集合框架中的接口 Collection:集合层次中的根接口,JDK没有提供这个接口直接的实现类。 Set:不能包含重复的元素。SortedSet是一个按照升序排列元素的Set。 List:是一个有序的集合,可以包含重复的元素。提供了按索引访问的方式。 Map:包含了key-value对。Map不能包含重复的key。SortedMap是一个按照升序排列key的Map。 集合框架中的实现类 SortedSet Set List Map HashSet LinkedHashSet TreeSet ArrayList LinkedList SortedMap HashMap TreeMap ArrayList ArrayList:我们可以将其看作是能够自动增长容量的数组。 利用ArrayList的toArray()返回一个数组。 Arrays.asList()返回一个列表。 迭代器(Iterator) 给我们提供了一种通用的方式来访问集合中的元素。 迭代器的工作原理 返回的元素 删除的元素 next() remove() next() Collections类 排序:Collections.sort() (1)自然排寻(natural ordering ); (2)实现比较器(Comparator)接口。 取最大和最小的元素:Collections.max()、Collections.min()。 在已排序的List中搜索指定的元素:Collectons.binarySearch()。 LinkedList LinkedList是采用双向循环链表实现的。 利用LinkedList实现栈(stack)、队列(queue)、双向队列(double-ended queue )。 数据结构 一般将数据结构分为两大类:线性数据结构和非线性数据结构。线性数据结构有线性表、栈、队列、串、数组和文件;非线性数据结构有树和图。 线性表 线性表的逻辑结构是n个数据元素的有限序列: (a1, a2 ,a3,…an) n为线性表的长度(n≥0),n=0的表称为空表。 数据元素呈线性关系。必存在唯一的称为“第一个”的数据元素;必存在唯一的称为“最后一个”的数据元素;除第一个元素外,每个元素都有且只有一个前驱元素; 除最后一个元素外,每个元素都有且只有一个后继元素。 所有数据元素在同一个线性表中必须是相同的数据类型。 线性表 线性表按其存储结构可分为顺序表和链表。用顺序存储结构存储的线性表称为顺序表;用链式存储结构存储的线性表称为链表。 将线性表中的数据元素依次存放在某个存储区域中,所形成的表称为顺序表。一维数组就是用顺序方式存储的线性表。 链表 单向链表 data next data next data next=null head节点 链表 data next data next data next=null head节点 插入 data next data next data next data next=null head节点 删除 链表 循环链表 data next data next data next head节点 链表 双向循环链表 data next data next data next head节点 previous previous previous 栈 栈(Stack)也是一种特殊的线性表,是一种后进先出(LIFO)的结构。 栈是限定仅在表尾进行插入和删除运算的线性表,表尾称为栈顶(top),表头称为栈底(bottom)。 栈的物理存储可以用顺序存储结构,也可以用链式存储结构。 a1 a2 an … 栈底 栈顶 出栈 进栈 队列 队列(Queue)是限定所有的插入只能在表的一端进行,而所有的删除都在表的另一端进行的线性表。 表中允许插入的一端称为队尾(Rear),允许删除的一端称为队头(Front)。 队列的操作是按先进先出(FIFO)的原则进行的。 队列的物理存储可以用顺序存储结构,也可以用链式存储结构。 a1 a2 a3 … an 队头 队尾 出队 入队 ArrayList和LinkedList的比较 ArrayList底层采用数组完成,而LinkedList则是以一般的双向链表(double-linked list)完成,其内每个对象除了数据本身外,还有两个 引用,分别指向前一个元素和后一个元素。 如果我们经常在List的开始处增加元素,或者在List中进行插入和删除
您可能关注的文档
- 就业指导中心绩效考核管理办法——武汉新华电脑学校.doc
- AdobeCS5系列软件官方正式版中文绿色版完美者特别版.doc
- 北师大版(看一看)ppt.ppt
- 3位数码管管脚判断.doc
- 扩底桩在上海软土地基中的实践与应用1.doc
- 5AUnit6Doinghousework第一课时.doc
- 压铸件技术要求.doc
- 申论模拟及答案.doc
- 中考信息技术EXCEL操作.doc
- 七年级数学培优补差计划.doc
- 2025年超星尔雅学习通《劳动通论》章节测试及参考答案【能力提升】.docx
- 2025年社区工作者考试试题库附答案(精练).docx
- 2025年法律常识题库word.docx
- 2025年计算机知识题库含大题及参考答案【综合题】.docx
- 2025年计算机知识题库含大题附参考答案ab卷.docx
- 2025年法律常识题库带答案(培优b卷).docx
- 2025年国家电网招聘之经济学类考试题库附参考答案【达标题】.docx
- 2025年注册消防工程师之消防安全技术实务题库及参考答案(培优).docx
- 2025年中国聚四氟乙烯不粘涂料项目投资可行性研究报告.docx
- 2025至2030年中国大屏幕手机行业市场竞争格局分析及投资方向研究报告.docx
最近下载
- 湖北省2022年普通高中学业水平选择性考试历史试题.docx VIP
- 大件垃圾清运(建筑、装修垃圾)重点难点分析及解决措施.docx VIP
- (完整版)基于MATLAB的智能控制系统的介绍与设计实例最新毕业论文.pdf VIP
- 2024年贵州省中考语文试题及答案.pdf VIP
- 核电厂建设工程预算定额.pptx VIP
- YDT841.1-2016地下通信管道用塑料管第1部分:总则.docx VIP
- 应急预案的编制培训课件.pptx VIP
- 普陀区区域影像中心和区域检验中心项目可行性建设方案.pdf
- 金融服务居间协议(协议范本).doc VIP
- 2023年《建筑工程施工质量验收统一标准》.doc VIP
文档评论(0)