- 1、本文档共34页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
第6章顺序表与ArrayList类2024/9/101
6.1顺序表的特点2024/9/102顺序表也是线性表的一种具体体现,顺序表节点形成的逻辑结构是线性结构、节点的存储结构是顺序存储,即节点的物理地址是依次相邻的。
2024/9/1036.1顺序表的特点顺序表使用数组来实现,顺序表的节点的物理地址是依次相邻的,因此可以随机访问任何一个节点,不必从头节点计数查找其它节点。●查询节点??
2024/9/1046.1顺序表的特点和链表不同,顺序表没有单独添加头节点的操作,但是有添加尾节点的操作。●添加节点?
2024/9/1056.1顺序表的特点?●删除节点?
6.2创建顺序表2024/9/106顺序表由Java集合框架(JavaCollectionsFramework,JCF)中的ArrayListE泛型类所实现。
2024/9/1076.2创建顺序表ArrayListE泛型类的实列使用数组管理节点,因此节点就是对象,后面的叙述不再说节点里的对象。ArrayListE泛型类实现了Java集合框架中的List泛型接口(和链表不同,没有实现Queue泛型接口)。ArrayListE泛型类继承了List泛型接口中的default关键字修饰的方法(去掉了该关键字),实现了List泛型接口中的抽象方法。
2024/9/1086.2创建顺序表顺序表可以使用add(Eobj)方法向顺序表依次增加节点。创建空顺序表,使用ArrayListE泛型类声明顺序表时,必须要指定E的具体类型,类型是类或接口类型(不可以是基本类型,比如int、float、char等)即指定顺序表中节点(对象)的类型。例如,指定E是String类型:ArrayListStringarrlistOne=newArrayList();或ArrayListStringarrlistOne=newArrayListString();例子1Example6_1.java例子1中的主类Example6_1中首先创建一个空顺序表arrlistOne,然后向空链表arrlistOne添加3个节点,随后再用arrlistOne中的节点创建顺序表arrlistTwo。修改arrlistTwo的节点,并不影响arrlistOne的节点.
6.3顺序表常用方法2024/9/109voidadd(intindex,Ee)向顺序表的index指定位置添加一个新的节点e(时间复杂度O(n))。publicbooleancontains(Objectobj)判断顺序表中是否有对象obj,如果有节点是对象obj返回true,否则返回false(时间复杂度O(n))。?Eremove(intindex)返回顺序表的第index节点,并删除顺序表的第index节点(时间复杂度O(n))。booleanremove(Objecto)删除顺序表中首次出现是obj的节点,删除成功返回true,否则返回false(时间复杂度O(n))。
2024/9/10106.3顺序表常用方法例子2Example6_2.java例子2中的主类Example6_2中比较了顺序表的get(intindex)方法和链表的get(intindex)方法的运行耗时,可以看出顺序表的耗时明显小于链表的耗时。
2024/9/10116.3顺序表常用方法例子3Example6_3.java例子3的主类Example6_3使用了顺序表的一些常用方法.booleanremoveIf(Predicate?superEfilter)删除满足filter给出的条件的全部节点(时间复杂度O(n))。Predicate是一个函数接口,其中唯一的抽象方法是booleantest(Tt),在使用removeIf(Predicate?superEfilter)方法时,可以将一个Lambda表达式传递给参数filter,该Lambda表达式的有一个参数,类型和节点类型一致,Lambda表达式的返回值类型是boolean型。
6.4遍历顺序表2024/9/1012ArrayList的存储结构是顺序结构,即节点的物理地址是依次相邻的,因此,顺序表完全可以调用get(intindex)方法来遍历节点。迭代器分单向迭代器和双向迭代器,对于线性表,单向迭代器只能向尾节点方向依次遍历节点(称向后遍历),双向迭代器可以向尾节点方向依次遍历节点,也可以向头节点方向依次遍历节点(称向前遍历)。有关向迭代器和双向迭代器的详细知识点参看第5章的5.9节。
2024/9/10136.4遍历顺序表例子4Example6_4.java例子4中的主类Example6_4中使用双向迭代器遍历一个顺序表
您可能关注的文档
- 第1章 数据结构简介.pptx
- 第2章 算法复杂度.pptx
- 第3章 递归算法.pptx
- 第4章 数组与Arrays类.pptx
- 第5章 链表与LinkedList类.pptx
- 第8章 队列与ArrayDeque类.pptx
- 第9章 二叉树与TreeSet类.pptx
- 第10章 散列表与HashMap类.pptx
- 第12章 常用算法与Collections类.pptx
- 第14章 经典算法思想.pptx
- 2023-2024学年六年级下册数学人教版期末考试试题(含答案).pdf
- 2025年中考语文复习之现代文阅读:议论文阅读(10题).pdf
- 电工(高级)证考试题库及答案.pdf
- 复杂的动态电路分析(原卷版+解析)-2021年中考物理复习之压轴题.pdf
- 2024年全国矿山钻探(应急救援)技能竞赛理论考试题库-下(判断题汇总).pdf
- 2023年人教版八年级历册必背知识点填空全册.pdf
- 2024-2025学年湖南省郴州市某中学初三5月第四次模拟考试英语试题(含答案).pdf
- 2022秋部编版四年级上册《道德与法治》全册教案.pdf
- 人教版九年级数学上册专项复习:二次函数中的新定义问题专项训练(30道).pdf
- 人教版九年级数学上册专项训练:圆的有关性质(二)解析版.pdf
文档评论(0)