- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
面向对象编程Java中的抽象数据类型
在本文中,我们将考察Java中的数据类型,但是我们将介绍抽象数据类型(ADT)的概念 。我们还将通过介绍Java Collections Framework(Java 集合架构)来学习Java定义的一些ADT。 ADT 一个ADT是一个仅由保存的数据类型和可能在这个数据类型上进行的操作定义的。开发者们只能通过ADT的操作方法来访问ADT的属性,而且他们不会知道这个数据类型内部各种操作是如何实现的。 在Java中,我们常常使用一个接口来给出一个操作集合而不需要透露这些操作实现的细节。记住一个接口定义了一个方法集而Java类必须实现这个集合以便满足它的强制性条件或者实现这个接口的一个实例。 线性表,堆栈和队列 当我们谈论ADT的时候,经常会说到线性表,堆栈和队列。我们不会讨论这些数据结构的细节,但我们会讨论为什么它们被称为ADT。 一个线性表是有限个元素的集合,其元素以线性的方式进行排列并提供对它的元素的直接访问。一个堆栈是一个后进先出(LIFO)的有序线性表,元素从堆栈头加入,并从堆栈头取出。一个队列是一个先进先出的有序线性表,元素从队列尾加入,并从队列头取出。 线性表,堆栈和队列的内部结构可以用许多方式实现。例如,我们可以使用一个有序数组或者一个链表来实现每个结构。关键的一点是不论你如何实现其内部结构,它对外的接口总是不变的。这使得你能够修改或者升级底层的实现过程而不需要改变公共接口部分。 Java 集合架构 Java 2软件开发包(SDK)提供了一些新类来支持大多数常用的ADT。这些类被称为Java集合类(类似于MFC中的集合类),它们协同工作从而形成Java 集合架构。这个集合架构提供了一套将数据表示成所谓的集合抽象数据的接口和类。 java.util.Collection接口被用来表示任意的成组的对象,也就是元素。这个接口提供基本的诸如添加,删除,和查询这样的操作。Collection接口还提供了一个iterator方法。iterator方法返回java.util.Iterator接口的一个实例。而Iterator接口又提供了hasNext, next, 和 remove方法。使用Iterator接口提供的方法,你可以从头到尾循环遍历一个Collection对象中的实例并能够安全的删除iterator 游标 所表示的元素。 java.util.AbstractCollection 是所有集合架构类的基础。AbstractCollection 类提供了对java.util.Collection 接口中除iterator和size方法以外的所有方法的实现。这两个例外的方法由所有继承java.util.AbstractCollection的子类实现。 实现一个接口的类必须提供对所有接口方法的实现。因为集合架构中的一些接口方法是可选的,所以必须有一种方法来通知调用者某种方法没有实现。当一个可选的方法被实现而这个方法又并没有被实现的时候,就会抛出一个UnsupportedOperationException 异常。UnsupportedOperationException 类继承了RuntimeException 类。这使得调用者能够调用所有的集合操作而不需要把每次调用都放在一个try-catch对里。 List线性表 List接口继承了Collection接口并定义了一个允许相同元素存在的有序集合。List接口还附加了一些使用一个数值型索引值并基于元素在线性表中的位置来操作Collection中元素的方法。这些操作包括add,get,set和remove。 List接口还提供了listIterator方法。这个方法返回java.util.ListIterator 接口的一个实例,这个实例能够让你从头至尾或者从尾至头的遍历一个线性表。java.util.ListIterator 继承了java.util.Iterator 接口。因此,它支持对它代表的Collection中的元素的添加和修改。 下面的例子演示了如何从后向前遍历一个列表的元素。要完成这个工作,必须在遍历开始之前把ListIterator定位于列表最后一个元素之后。 ListIterator iter aList.listIterator aList.size ; while iter.hasPrevious System.out.println iter.previous .toString ; 集合架构提供了对List接口的两个实现:LinkedList(链表)和ArrayList(数组列表,即静态列表)。这两个实现都支持对其元素的随机访问。一个ArrayList实例支持数组风格的操作并支持数组大小的改变操作。一个Linke
您可能关注的文档
- 面具的制作.doc
- 会计基础_第五章制造业企业主要经济业务的核算.ppt
- 地理(人教版必修2)配套课件4.1工业的区位选择.ppt
- 会计学习归纳总结.doc
- 会计学原理A部分答案.doc
- 实验IGRP非等值带宽的负载平衡[].doc
- 地理下册《7.4俄罗斯》复习学案新人教版.doc
- 会计学复习提纲-1-答案.doc
- 会计学笔记-20140615.doc
- 会计学答案文档.doc
- ADC 细胞活性评估的挑战与分析策略.pdf
- 钻井泥浆泵液缸开裂失效分析.docx
- Johnson-Cook、修正的Zerilli-Armstrong及Arrhenius本构模型对奥氏体不锈钢流变应力的预测.pdf
- 生成型人工智能的现状 The State of Generative AI 2025.pdf
- 2024年湖南省商业特许经营调查报告-湖南省连锁经营协会.pdf
- 【投资湖南】2025年湖南省重点产业投资全景分析报告.pdf
- 高性能运动控制的现代伺服技术.pdf
- 陕西省科技成果转化年度报告(2025年).pdf
- 2025年中国-巴西农业合作:价值链投资风险与绿色金融创新报告 China-Brazil Agricultural Cooperation Value-Chain Investment Risks and Green Finance Innovation-北京绿研公益发展中心(GHUB).pdf
- 联合资信 -内需动能仍待提振,全年增长目标可期--宏观经济信用观察三季报(2025年9月).pdf
最近下载
- ArcGIS软件应用 ArcGIS中的数据文件 ArcGIS中的数据文件 - 栅格数据.pptx VIP
- 《OEE分析以及管理》专业培训教材.ppt VIP
- Q 371722SLH 001-2017_大蒜收获机 企业标准.pdf VIP
- GB 50300-2013建筑工程施工质量验收统一标准.pdf VIP
- 15J401 钢梯国家标准图集.pdf VIP
- 北师大版2024新版七年级数学上册课件:第五章 问题解决策略:直观分析.pptx VIP
- 中药饮片-功能与主治(中国药典2020版一部).pdf
- 消化内科护理安全管理.pptx VIP
- 素土路施工方案.docx VIP
- 空间形态构成知到智慧树期末考试答案题库2024年秋四川水利职业技术学院.docx VIP
原创力文档


文档评论(0)