黑马程序员java培训就业班笔记:集合体系总结

上传人:pu****.1 文档编号:508729234 上传时间:2023-05-13 格式:DOCX 页数:6 大小:45.08KB
返回 下载 相关 举报
黑马程序员java培训就业班笔记:集合体系总结_第1页
第1页 / 共6页
黑马程序员java培训就业班笔记:集合体系总结_第2页
第2页 / 共6页
黑马程序员java培训就业班笔记:集合体系总结_第3页
第3页 / 共6页
黑马程序员java培训就业班笔记:集合体系总结_第4页
第4页 / 共6页
黑马程序员java培训就业班笔记:集合体系总结_第5页
第5页 / 共6页
点击查看更多>>
资源描述

《黑马程序员java培训就业班笔记:集合体系总结》由会员分享,可在线阅读,更多相关《黑马程序员java培训就业班笔记:集合体系总结(6页珍藏版)》请在金锄头文库上搜索。

1、0黑马程席员www.rlrieima.cQmjavrt中集合类的关系图:1 terator y;j ProducesW Collection YProducesMap4:List!terator List ;Set j区:仝TreeMapLinkecLjst I I5Li nkedHashSetA Comparator :LinkedHastiMdp1、Collection:集合框架的由来:因为每个容器对象的自身的数据结构不同,所以对它们进行单独的描 述和对象封装,并不断的向上抽取共性内容,这样变形成了集合框架。定义:集合就是一个容器、用来存储对象、长度可变。理解:其实班级就是一个容器,班上的

2、每一个学生都是单独封装了功能的对象,因为班 级中的人数由于有人请假每天都再变化,所以长度是可变的,常见方法:1、增加:add();增加一个元素addAll();增加一部分元素。2、删除:Remove()删除一个元素,会返回boolean类型,其实用到是equals方法,所以判断 是否有符合要求的元素。如果删除成功会改变集合的长度。下面同理。removeAll ()删除全部Clrea();清空容器总结:在这里要尤其注意,面试题中经常考到。3、判断:Contains。;是否包含,也就说要所有的都包含在其中才算包含,否则不算包含。 isEmpty();集合是否为空Size();集合长度。4、取:re

3、tainAll();取交集。理解总结:班级就是一个容器,班级中进来一位新生就是Add()添加一个元素,来了一堆同学就是黑马程席员addAl 1,班上出去一个学生就是remove删除一个,出去一部分就是removeAll删除一部分, 班级是不是有人,isEmpty,班上是否包含张三contains,班上有多少人size。班上是否包含隔 壁班的同学retainAll.去交集。集合使用细节:1、直接存储基本数据类型值也是可以的,因为JDK1.5后有自动装箱,会将基本 数据类型转成对象,JDK1.4绝对不行。Eg:coll.add(3)2、集合对象中存储的其实是对象的元素的引用。3、Add的参数是Ob

4、ject类型,可以接收所有的类型的对象,会出现向上转型, 取出元素时类型还是Object不能使用具体对象的特有内容,想要使用特有内容向下 转型。Eg:Object obj = obj;想要取出访问子类的特有方法,向下转型,String s=(String)it.next();sop(s.length();l-List:有序列表(存取顺序是一致的)因为该子体系元素中有索引或角标,可以 存储重复的元素。常用方法:添加:List.add(l,abc7);/abcl,abc7,abc2,abc3在角标 1 位置往后顺延。删除Object obj=list.remove(2);删除指定索引上的元素,根据

5、角标删除会返回来被删对 象Sop(obj);/obj: abc2 abc1,abc7,abc3获取:获取指定角标上的元素并返回,这也是和remove的区别。Object obj=list.get(1);Sop(obj);/obj:abc1 abc1,abc7,abc3获取元素的索引,如果元素存在返回索引,不存在返回-1,依次还可以判断元素 是否存在。Int index=list.indexOf(abc1);Sop(index);/index=1获取指定的子列表sublist(fromIndex,toindex)包含头不包含尾List=list.sublist(1,2);/abc1修改:Obje

6、ct obj=list.set(1,haha);Sop(obj);/abc1,haha,abc3记住:只有list集合支持增删改查。i-ArrayList:低层是数组数据结构,不同步,查询快,增删慢,|-LinkedList:低层是链表数据结构,不同步,查询慢,增删较快。b-Vector:低层是数组数据结构,同步,安全效率低,还有其特有方法枚举。由于名称过长被iterator取代。总结:掌握这些集合的方法,它们的方法和list集合的方法很相似,重点掌握www.iliieirna.ccirri改变中国IT教育,理们迁在行动各种集合的特点,尤其是前两个子类的低层数据结构。l-Set无序、不能存储重

7、复的元素、方法个collection集合的方法一致。l-HashSet低层是哈希表数据结构,无序,能保证元素的唯一性,是根据元素的两个方法来保 证元素的唯一性的,hasCode和equals方法。只有当hasCode算出的哈希值相同的情况 下才去判断equals方法是否为true.如果为真说明两个元素相同,不存储,所以往hashSet 集合中存储自定义对象时要覆写hasCode方法和equals方法,重点掌握上述保证唯一性的方法以及哈希表内存原理实现。l-linkedHashSet以元素的插入顺序来维护集合的连接表,允许以插入的顺序的集合中迭代的 怎么去理解?HashSet hs=new Ha

8、shSet();hs.add(B);hs.add(A);hs.add(D);hs.add(E);hs.add(C);hs.add(F);System.out.println(HashSet:+hs);LinkedHashSet lhs=newLinkedHashSet();lhs.add(B);lhs.add(A);lhs.add(D);lhs.add(E);lhs.add(C);lhs.add(F);System.out.println(LinkedHashSet:+lhs); TreeSet ts=new TreeSet(); ts.add(B);ts.add(A);ts.add(D);t

9、s.add(E);ts.add(C);ts.add(F);System.out.println(TreeSet:+ts);结果:HashSet:D, E, F, A, B, Cwww.iiHieirria.cQm ffiSlTfeBSH改变中国IT数育,理们迁在行动LinkedHashSet:B, A, D, E, C, FTreeSet:A, B, C, D, E, F 从结果可以知道对于LinkedHashSet集合可以保证元素按照添加的顺序取 出元素,而TreeSet集合可以对集合中的元素进行自然排序。l-TreeSet用于给set集合中元素按照指定的顺序进行排序,低层是二叉树结构,线程

10、是不同 步的,两种排序方式:1、让元素自身具备比较功能,就是强制让元素去实现 comparable接口,覆盖 compareTo方法。这时元素具备的自然排序。可是如果元素自身不具备比较的功能,获 取具备的比较功能不是所需要的。这时该排序方式就不能用了。2、让集合自身具备比较功能,需要定义比较器,其实就是将实现了 Comparator接 口的子类对象作为参数传递给TreeSet集合的构造函数,让treeSet集合一创建就具备了 比较功能。该子类必须要覆盖compare方法。掌握二叉树数据结构的特点:不明白?2、Map:特点:1、它是集合框架中的顶层2、它存储的是键值对。3、Map集合中必须保证键

11、的唯一性。4、如果存储键值对时,键重复,新值覆盖旧值。其实存储的就是一种映射关系。 常见方法:增加:Put(); putAll();删除:Clrea(); Remove(key);判断:containKey(); containValue();获取:get(Object key);Size(); Values();entrySet();将map集合中的映射关系map.Entry其实Entry也是一个接口,它是map接口中的一个内部接口。 Interface Mappublic static interface Entrywww.iiHieirria.cQm改变中国IT数育,理们迁在行动publ

12、ic abstract Object getKey();public abstract Object getValue();keySet();将map中所有的键都存入了set集合,因为set具备迭代器,所以可以 迭代方式取出所有的键,在根据get方法获取每一个键对应的值。Map集合的取出原理:将map集合转成set集合,在通过迭代器取出. |-HashMaP:低层是哈希表数据结构,该集合是不同步的,允许使用null键和null值。 JDK1.2效率高|-LinkedHashMap:保证按照插入的顺序进行取出。l-TreeMap:低层是二叉树数据结构,线程不同步,可以用于给Map集合中的键进行排

13、序。3、Iterator迭代器原理:其实就collection这个集合公共取出方式,因为每个容器的自身的数据结 构不同,它们的取出方式也是不同的,要根据每个容器的特点来定义特定的取出方式,而取 出方式直接在访问容器中的元素,所以将取出方式定义在容器的内部,是一个内部类,而对 外提供访问接口。这样可以通过接口访问任何的collection容器中的元素,所以它的出现降 低了耦合性,我们只用面对Iterator接口,和使用接口就可以了。理解:抓布娃娃游戏机。l-ListIterator列表迭代器:要想在迭代过程中进行增删操作Iterator是不可以的,它只有删除动作, 所以可以使用其子接口 list

14、iterator,是list集合特有的取出方式,它包包含了增删改查的 方法。4、Collections 和 Collection 的区别:(面试题)1、java. util.Collection 是- -个集合接口。它提供了对集合对象进行基本操作 的通用接口方法。Collection接口在Java类库中有很多具体的实现。 Collection接口的意义是为各种具体的集合提供了最大化的统一操作方式。Collection|-List|-LinkedLis t IpArrayList|LVector|LStackLSe timportimportimportpublic31 ;1.2.3.4.5.6.7.&9.10.11.12.13.14.15.16.17.18.19.20.0黑马程原员www.iitieim9.CQm2、java.util.Collections是一个包装类。它包含有各种有关集合操作的静态 多态方法。此类不能实例化,就像一个工具类,服务于Java的Collection框架。 Java代码_ java. util.ArrayList;java. util.Collections;java. ut

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 学术论文 > 其它学术论文

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号