- 1、本文档共37页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第五天 面向象3
第五天 面向对象_04
3.1、链表(理解)
?????????链表是一种最基本的数据结构,但是对于数据结构的部分,强调以下几点:
???????????????????·?在整个Java开发领域之中,没有一本真正去讲解数据结构的书,只能去看C语言的数据结构;
???????????????????·?在所有的开发之中,都会存在数据结构的身影,可以这样去解释:数据结构的精通与否,完全决定于以后;
???????????????????·?数据结构的核心:引用数据类型操作。
3.1.1?、链表的基本概念
?????????链表实际上可以理解为一串数据,或者按照专业性的说法,可以理解为动态的对象数组,对象数组最大优点:是表示出多的概念,例如:多个雇员。但是传统的对象数组有一个最大的问题在于,里面保存的数据的长度是固定的。
思考:如果说现在要想扩大一个对象数组的范围?
?????????·?建立一个新的对象数组,而后将原本的内容拷贝到新数组之中,再改变原数组的引用方式。
public class TestDemo {
?????????public static void main(String args[]) {
???????????????????String [] str = new String[] {Hello,World,MLDN} ;
???????????????????String [] newStr = new String[6] ;
???????????????????System.arraycopy(str,0,newStr,0,str.length) ;
???????????????????str = newStr ;??????//?改变引用,存在垃圾
???????????????????str [3] = 你好 ;
???????????????????str [4] = 世界 ;
???????????????????for (int x = 0 ; x str.length ; x ++) {
????????????????????????????System.out.println(str[x]) ;
???????????????????}
?????????}
}
?????????通过以上的分析,可以发现,对象数组所有的对象元素被数组的索引控制,可以说是自动完成的控制,但是链表需要人为进行关系的设置,而且每个操作设置的时候,除了要保存“对象”之外,还要再多保留一个引用。
?????????这个引用就和之前讲解的领导是一样的:一个雇员的领导还是雇员,雇员领导的领导也是雇员。
范例:先给出链表的基本操作结构
class Node {
?????????private String data ;???????//?假设要保存的数据类型是字符串
?????????private Node next ;
?????????public Node(String data) {
???????????????????this.data = data ;
?????????}
?????????public String getData() {
???????????????????return this.data ;
?????????}
?????????public void setNext(Node next) {
???????????????????this.next = next ;
?????????}
?????????public Node getNext() {
???????????????????return this.next ;
?????????}
}
范例:挂节点
public class TestDemo {
?????????public static void main(String args[]) {
???????????????????// 1、设置数据
???????????????????Node n1 = new Node(火车头) ;
???????????????????Node n2 = new Node(车厢A) ;
???????????????????Node n3 = new Node(车厢B) ;
???????????????????n1.setNext(n2) ;
???????????????????n2.setNext(n3) ;
???????????????????// 2、取出数据
???????????????????Node currentNode = n1 ;???????//?设置每一个当前节点
?
您可能关注的文档
- 第三章--对贸易短期信贷.ppt
- 第三章(五)区中老年保健.ppt
- 第三章 国际易政策措施-鲁丹萍版.ppt
- 第三章_创业资方式一:股权融资.ppt
- 第三章 CI战略与策划.ppt
- 第三章 角色论与护患关系.ppt
- 第三章整合营传播的八项原则.ppt
- 第三章样品的集与处理保存.ppt
- 第三章 广媒介.ppt
- 第三章 节事动的市场营销1-2.ppt
- 2023年高考一轮多维练小题-地球的宇宙环境(原卷版).doc
- 2023年高考地理重点难点考点通练-服务业(解析版).doc
- 备战2023年新高考考向追踪16-冰川地貌(检测).doc
- 考前模拟卷B-2023年高考地理一模考前模拟卷(江苏专用)(原卷版).docx
- 山东省泰安市2022-2023学年高二下学期期末生物试题(原卷版).docx
- 2023年高考全一轮微专题07-风力作用与地貌(解析版).doc
- 江苏省扬州市扬州中学2023-2024学年高二上学期12月月考地理试题(原卷版).docx
- 2020—2021学年湖北省黄石市有色第一中学高一上学期期末考试历史试题.docx
- 期中押题卷01-备战2023-2024学年高一地理下学期期中真题分类汇编(原卷版).docx
- 06简易绘图类-备战2023年高考地理题型能力专题突破(解析版).docx
文档评论(0)