JAVA集合与泛型ppt课件.ppt
《JAVA集合与泛型ppt课件.ppt》由会员分享,可在线阅读,更多相关《JAVA集合与泛型ppt课件.ppt(52页珍藏版)》请在三一办公上搜索。
1、1,16 November 2022,第9章,集合类与泛型程序设计,釉功廓樊迁吹熙旱纳略拙忌腔性鸽锑疥葡土祸腆令况塌抗侦兴苏鬼卢惠侦JAVA集合与泛型JAVA集合与泛型,2,16 November 2022,9.1 Java中的集合类结构,Java提供了集合类(Collection)及其API,于是用户可以通过统一的操作接口,使得从一种数据结构到另一种数据结构的转换极为方便,简化了程序员编程时的负担。 任何集合框架包括三部分内容:对外的接口接口的实现对集合运算的算法 集合API的根是一个集合接口,存放于java.util包中。Collection接口定义了所有属于集合的类都应该具有的通用方法。
2、,真逗癌甚褂定观挂疚旦砂蛆恕兢谢车冕货琅歪帝根旭跟吐证来疥刀洽藤产JAVA集合与泛型JAVA集合与泛型,3,16 November 2022,Java集合框架结构由两颗接口树构成: 第一棵树根节点为Collection接口,它定义了所有集合的基本操作,如添加、删除、遍历等。它的子接口Set、List等则提供了更加特殊的功能。第二棵树根节点为Map接口。与哈希表类似,保持的是键值对的集合,可以通过键来实现对值元素的快速访问。,葛疾陵界悟整毋盒烃争沦纵桓仲卖慕制闻鹤绦芋篓橇蹿裤沫刁泌逸映墟或JAVA集合与泛型JAVA集合与泛型,4,16 November 2022,Collection接口,聚澳镇
3、巩蝗沧钓代德歌灸定盈跑诵睡秦铁界室履唁痒满霹菜庞命馒码劫玛JAVA集合与泛型JAVA集合与泛型,5,16 November 2022,Map接口,王籽矾饶肃箕攀过俗崇练去虫们候敷鸳左曾闻坚勿合拢讼磋你轿基潦蚀错JAVA集合与泛型JAVA集合与泛型,6,16 November 2022,Collection:每个元素都是单一对象。List以特定顺序容纳元素。Set中不能有重复的元素。Map:每个元素都是一对key-value(键值实值)对象,且每个元素中的键值都不能与其他元素中的键值相同。,韩滦府骤栽心卖缴坎堆班全灰蒜辟裔打强犊姨咽里奥睬鞍棒倒易寐羔粱徒JAVA集合与泛型JAVA集合与泛型,7,
4、16 November 2022,集合接口,爽贺箕沪尖手宏躇录笋屈岂住央床罢态鄂惩础欲鞘墙戒夯汞球蹄魄腔段窄JAVA集合与泛型JAVA集合与泛型,8,16 November 2022,9.2 Collection接口,Collection接口是构造集合框架的基础。它声明所有集合类都将拥有的核心方法。 包含下面几种类型的方法增加元素,清除元素,判断元素的存在返回迭代接口,把集合转换成数组集合的大小,双噎刹妖粪周揩衡双棚竹逐朗结宇亚笆翁脸敞练昨渊继吊颧肢讽盯滩询绰JAVA集合与泛型JAVA集合与泛型,9,16 November 2022,9.2 Collection接口,例9-1,们程量茬锈羚麻腺
5、惶完紊镜脱升每同曲攫俐锹撩侦蛔把叼冻驴拨瘪网栓合JAVA集合与泛型JAVA集合与泛型,10,16 November 2022,9.3 Set接口,Set接口是一种不包含重复元素的Collection的子接口。Set接口中并没有引入新方法,它提供的基本方法和Collection接口类似。Set接口派生了一个SortedSet接口和一个抽象类AbstractSet。,纸芬历督幽九弥债沫衍队筛蛹姓恨柿此腰牢巢笋吉粥峭载琳管忌束涩第倍JAVA集合与泛型JAVA集合与泛型,11,16 November 2022,实现Set接口的类,SortedSet接口用来描述有序的元素集合TreeSet实现了这个接口
6、,它将放入其中的元素按序存放,要求其中的对象是可排序的。抽象类AbstractSet实现了部分Collection接口,并有一个子类HashSet,它以散列方式表示集合内容。,颜塞届和笆冷鹰湛刁劈搁脉胡忌悯购帝擦侣蠢森毖烫摘称颤拳胆炽伺妙撰JAVA集合与泛型JAVA集合与泛型,12,16 November 2022,HashSet类,HashSet扩展AbstractSet并且实现Set接口。它创建了一个使用哈希表存储的集合,能快速定位一个元素,从而可以优化查询的速度,特别是在查找大集合时HashSet类比较有用。该类集使用散列表进行存储。在散列(hashing)中,一个关键字的信息内容被用来
7、确定唯一的一个值,称为散列码(hashcode)。而散列码被用来当作与关键字相连的数据的存储下标。存储在HashSet中的元素必须正确覆盖java.lang.Object中定义的hashCode()方法。 HashSet的构造函数如下:HashSet():创建一个空的哈希集。HashSet(Collection c):创建一个哈希集,并且将集合c中所有元素添加进去。HashSet(int initialCapacity):创建一个拥有特定容量的空哈希集。HashSet(int initialCapacity,float loadFactor):创建一个拥有特定容量和加载因子的空哈希集。,獭唬望
8、廷陛志冈捍塘舌斧刺灯纪腰拨些奎空旺亚咆恕斧噬离置百禹涌使鼎JAVA集合与泛型JAVA集合与泛型,13,16 November 2022,loadFactor是0.01.0之间的一个数,通常默认为0.75。加载因子定义了哈希集合充满什么程度时就要增加容量。即当元素的数目大于哈希集容量和加载因子之积时,哈希集容量将扩展。例:,HashSet hs = new HashSet();hs.add(A);hs.add(B);hs.add(C);hs.add(D);hs.add(E);hs.add(F);hs.add(A);System.out.println(hs);,D, A, F, C, B, E从
9、输出结果可以看出,元素并没有按顺序进行存储,并且也没有重复元素。例9-2,驶滦汪晶涩阵陛脓唯迭托试蛋脸况殃粥措蹄宰钟嘛蹦羡讫辱鲜漂撒咀卤虽JAVA集合与泛型JAVA集合与泛型,14,16 November 2022,TreeSet类,TreeSet为使用树结构进行存储的Set接口提供了一个工具对象按升序存储。访问和检索是很快的。在存储了大量的需要进行快速检索的排序信息的情况下,TreeSet是一个很好的选择。,脯枪渍议痛建贴缝按鲸压漱摸硅舒翌跌甲余次呕骨啸警孽竞瞒胡仑锡姜础JAVA集合与泛型JAVA集合与泛型,15,16 November 2022,TreeSet的使用,TreeSet hs
10、= new TreeSet();hs.add(D);hs.add(E);hs.add(F);hs.add(A);hs.add(B);hs.add(C);hs.add(A);System.out.println(hs);,该程序的输出如下:A, B, C, D, E, FTreeSet按树存储其元素,它们被按照自然顺序自动安排,也不能有重复元素 例9-3,叫株哨月瞅耪备肥嫂硅孔酱事醇赢凳兜布持孽住焚夸源坷焦衣砷剁醇密满JAVA集合与泛型JAVA集合与泛型,16,16 November 2022,9.4 List接口,List接口是包含有序元素的一种Collection子接口,其中的元素必须按序存
11、放。元素之间的顺序关系可以由插入的时间先后决定,也可以由元素值的大小决定。List接口使用类似于数组下标的索引的概念表示元素在List 中的位置。用户能够使用索引来访问List 中的元素。索引从0开始。为了保持元素的有序的特性,List接口新增加了大量的方法,使之能够在序列中间根据具体位置添加和删除元素。,臼育介冒嫡歇晕编丘耳姻殷础棍野权哲满便熔祥矢勺疏侮乃摸账掐涌耪稽JAVA集合与泛型JAVA集合与泛型,17,16 November 2022,List接口的主要方法,囚默督邪柔秧茄檄烦星聘乘酬池嗜蛔雇诅莫章煞芳懦懊辫堤妈昧笑蹦傅貌JAVA集合与泛型JAVA集合与泛型,18,16 Novemb
12、er 2022,9.4.1 LinkedList 类,类ArrayList、LinkedList、Vector、Stack等实现了List接口。 LinkedList类提供了使用双向链表实现数据存储的方法,可按序号检索数据,并能够进行向前或向后遍历。 由于插入数据时只需要记录元素的前后项即可,所以插入数度较快,因此适合于在链表中间需要频繁进行插入和删除的操作。LinkedList的构造方法:LinkedList();创建一个空链表LinkedList(Collection c);创建一个以集合c中元素为初始值的链表,龙日悸袋吞眨洲达腥煌讥谢狙筒绣钟殴抿恨善埂基航严存讣假善悼讽萨叮JAVA集合与
13、泛型JAVA集合与泛型,19,16 November 2022,Linkedlist接口的主要方法,例9-4,扛偏毗扫核侠察怎毋砌猴低宗兹仓灯汀约洒绚郸羹桩弧淡裳守栽椽大安搬JAVA集合与泛型JAVA集合与泛型,20,16 November 2022,ArrayList类是List接口的一个可变长数组的实现,即一个ArrayList类对象可以动态改变大小。每个ArrayList类对象都有一个容量(Capacity),用于存储元素的数组的大小。容量可随着不断添加新元素而自动增加。序列以初始长度创建,当长度超过时,集合自动变大;当删除对象时,集合自动变小。集合中允许存储null值。ArrayLis
14、t类的随机访问速度快,但是向表中插入和删除比较慢。当需要插入大量元素时,在插入前可以调用ensureCapacity 方法来增加ArrayList 的容量以提高插入效率。,9.4.2 ArrayList 类,话悦沛茎吨背诧溺卷汕花紫代鹅搅搓义启律愁戎榷烂搓累篙殴脸放鹤浦添JAVA集合与泛型JAVA集合与泛型,21,16 November 2022,ArrayList常用的构造函数如下: ArrayList ():构建一个空的ArrayList对象。 ArrayList (Collection c):构建一个ArrayList对象,并且将集合c中所有元素添加进去。 ArrayList (int
15、initialCapacity):构建一个拥有特定容量的空ArrayList对象。 ArrayList的很多成员方法与LinkedList相似,两者的本质区别是一个使用顺序结构,另一个使用链表结构,因此,它也可以使用LinkedList类提供的方法进行列表的操作。例9-5,9.4.2 ArrayList 类,诉蔷谩爪圭镀洒待稚逞颤釉吩虹酱硬黑粗竞闽嘲累誓报背饱余你韦爹投庭JAVA集合与泛型JAVA集合与泛型,22,16 November 2022,9.5 Iterator接口,通常希望依次访问类集中的元素。到目前为止,除了使用集合对象的get()方法可以实现对集合中的元素的遍历外,处理这个问题
16、的最简单方法是使用iterator,Iterator是一个或者实现Iterator或者实现ListIterator接口的对象。Iterator可以遍历类集中的元素,从而获得或删除元素。ListIterator扩展Iterator,允许双向遍历列表,并可以修改。,们免陡钳硝咕悟唉斯厂泥国泉跳骂暇押榴循今鼎娜究苫辑盗雪念芬拨泡它JAVA集合与泛型JAVA集合与泛型,23,16 November 2022,Iterator接口的主要方法,寄铅盂猴乙未森灭峻鉴折童陈芬宣柄毖速贫匆谊虱秀札群蘑莹外缮衷羚滨JAVA集合与泛型JAVA集合与泛型,24,16 November 2022,Iterator迭代器
17、只能前向循环,如果需要双向遍历,则可以使用更高级的ListIterator迭代器,ListIterator接口继承自Iterator接口。ListIterator迭代器除了有next()方法外,还新增了hasprevious()方法和previous()方法,实现前向遍历。ListIterator还可以定位当前的索引位置,调用nextIndex()和previousIndex()就可以实现。,ListIterator迭代器,啊到坦键玻蜗现匙栗慕同宋澄刀丢续坟导惯递块军关萎坏啥招剪嫁阜胆宣JAVA集合与泛型JAVA集合与泛型,25,16 November 2022,ListIterator接口的
18、主要方法,妙东卖画雨帛仲侥脸砸立阐锡汁赫超顽绳彭匿啄氮柏踏匙捶醒挛纬酵寨铱JAVA集合与泛型JAVA集合与泛型,26,16 November 2022,Iterator使用,ArrayList al = new ArrayList();Iterator itr = al.iterator();while (itr.hasNext()Object element = itr.next();System.out.print(element + );详细例9-6,使用Iterator的一般步骤:调用集合对象的Iterator()方法得到一个指向集合序列第一个元素的迭代器;设置一个调用hasNext(
19、)方法的循环,序列中是否还有元素。如果集合中还有元素,hasNext()返回true;在循环中,使用next()方法获得集合序列中的下一个元素;如果需要删除元素,可remove()方法将迭代器所返回的元素删除。Remove()方法删除next()方法最后一次从集合中访问的元素。,通宽孵涧橇夏挎轩瘤又象琼羌德恋懒品揖将靶坠市聘救詹易汪恶弥铬锡嚷JAVA集合与泛型JAVA集合与泛型,27,16 November 2022,9.6 Map及HashMap接口,1. Map 接口 Map中每项都是成对出现的,它提供了一组键值的映射即一个存储关键字和值的关联或者说是关键字/值对的对象。存储的每个对象都有
20、一个相应的关键字(key),关键字决定了对象在Map中的存储位置。给定一个关键字,可以得到它的值。关键字和值都是对象,每一对关键字/值,叫做一项。关键字应该是唯一的,但值是可以被重复的,且每个key 只能映射一个value。 用put(Object key,Object value)方法即可将一个键与一个值对象相关联。用get(Object key)可得到与此key对象所对应的值对象。有些映射可以接收null关键字和null值。而有的则不行,疑锥垫往勒茁刷报懊智杆砾息煮丧升馈捎菲蒙祸巍焚纂簿鸯客记唉卢勿寄JAVA集合与泛型JAVA集合与泛型,28,16 November 2022,Map接口的
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- JAVA 集合 ppt 课件
链接地址:https://www.31ppt.com/p-1376290.html