- 1、本文档共66页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
13常见数据结构的Java实现
第13章 常见数据结构的Java实现 编写程序时,我们经常要和各种数据打交道,为处理这些数据所选用的数据结构对于程序的运行效率是非常重要的。 在学习数据结构这门课程的时候,人们要编写具体的算法去实现相应的数据结构。例如: 链表:需要实现链表建立、结点插入删除等算法; 栈:需要实现进栈和出栈等操作; 缺点:有些繁琐! 第13章 常见数据结构的Java实现 在jdk1.2之后,Java提供了许多已实现的常见数据结构的类。 使用这些类创建数据结构时,就不需要再编写具体的算法,感觉像创建数组一样方便; 建议:参考相关教材,熟知数据结构的相关原理,以便于更熟练的用好这些类。 第13章 常见数据结构的Java实现 13.1 链表(LinkedList) 补充:动态数组(ArrayList) 13.2 栈 13.3 树集 13.4 树映射 13.5 散列集 13.6 散列表 补充:HashMap 13.7 向量 13.1 链表 链表:由若干个称作结点的对象组成的一种数据结构: 单链表:每个结点含有一个数据域和一个引用域 双链表:每个结点含有一个数据域和两个引用域 数组(静态): 优点:可以快速随机查找,适合存储大量数据 缺点:使用之前必须定义大小;使用时大小不能动态改变,容易造成资源浪费或空间不足;增加、删除结点时比较慢 链表: 优点:使用之前无需定义大小,使用时可以动态的增加或减少数据 缺点:查找时候必须从第一个结点开始,相对较慢 接口List java.util包中的一个接口,Collection是它的父接口 该接口提供了若干方法,可以对列表中的元素进行精确地插入、删除、查找和修改。 LinkedList:实现了List接口的双链表类 ArrayList :实现了List接口的动态数组类 注:详情请查看电子技术文档 LinkedList ArrayList 创建链表(LinkedList) 使用java.util包中的LinkedList类可以创建一个双链表对象。 如下操作创建了一个空链表: LinkedList mylist = new LinkedList(); 由于LinkedList类实现了接口List,因此: List list = new LinkedList(); 接口回调技术:把LinkedList对象的引用赋值给Collection接口变量或List接口变量,那么接口变量就可以调用类实现的接口方法 创建动态数组(ArrayList) 使用java.util包中的ArrayList类可以创建一个动态对象。 如下操作创建了一个初始容量为10的空数组: ArrayList mylist = new ArrayList(); 如下操作创建了一个初始容量为n的空数组: ArrayList mylist = new ArrayList(n);//n为int型 由于ArrayList类实现了接口List,因此: List list = new ArrayList(); 接口回调技术 添加接点add()(LinkedList与ArrayList) public boolean add(Object element): 将指定的元素追加到链表/数组的尾部 添加的数据是参数elememt指定的对象 例如:向列表中添加4个结点(每个结点中存放一个字符串): mylist.add(“It”); mylist.add(“is”); mylist.add(“a”); mylist.add(“door”); 注意事项(一) public boolean add (Object element) 列表中每个结点的数据必须是Object类的对象 由于任何类都是Object类的直接或间接子类 因此,列表结点中的数据可以是任何类创建的对象,但不能是基本数据类型。 例如:向列表末尾添加一个新的结点 list.add(a); //√ list.add(a); //x list.add(new Character(a)); //√ list.add(1); //x list.add( new Integer(1) ); //√ 注意事项 (二) 方法:public Object get (int index) 作用:得到列表中指定位置处的元素中的对象 (索引从0开始) 注意:当列表调用get方法获取一个结点对象后, 要用类型转换运算符将该对象转化回原来的类型 String s = (String)list.get(0); Integer it = (Integer)mylist.get(0); System.out.println(Value()); Character ch = (Character
您可能关注的文档
- 007HR管理者能力素质全新攻略.ppt
- 01-广告心理学01-03章同步练习已做.doc
- 01 第一章 心理学——从诞生到现在.ppt
- 0101第1章 电子商务与网络零售概述1-课件.ppt
- 011小学 第五册 第一课 色彩滴染美术课件.ppt
- 01免疫学发展史及展望.ppt
- 01物业管理概论1.ppt
- 01精细化工工艺学第1章.ppt
- 01蛋白质组学概述 蛋白质化学课件 江南大学.ppt
- 01霍尼韦尔c300pks系统概述课件.ppt
- 北师大版小学数学三年级上册《寄书》教学设计.docx
- 统编版(部编版)语文二年级上册《雪孩子》教学设计.docx
- 统编版(部编版)语文二年级上册《八角楼上》教学设计.docx
- 北师大版小学数学三年级上册《长方形周长》教学设计.docx
- 北师大版小学数学三年级上册《丰收了》教学设计.docx
- 统编版(部编版)语文二年级上册《夜宿山寺》教学设计.docx
- 统编版(部编版)语文二年级上册《风娃娃》教学设计.docx
- 统编版(部编版)语文二年级上册《朱德的扁担》教学设计.docx
- 统编版(部编版)语文二年级上册《难忘的泼水节》教学设计.docx
- 统编版(部编版)语文二年级上册《纸船和风筝》教学设计.docx
文档评论(0)