- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
1. Java集合类基本概念
在编程中,常常需要集中存放多个数据。从传统意义上讲,数组是我们的一个很好的选择,前提是我们事先已经明确知道我们将要保存的对象的数量。一旦在数组初始化时指定了这个数组长度,这个数组长度就是不可变的,如果我们需要保存一个可以动态增长的数据 在编译时无法确定具体的数量 ,java的集合类就是一个很好的设计方案了。
集合类主要负责保存、盛装其他数据,因此集合类也被称为容器类。所以的集合类都位于java.util包下,后来为了处理多线程环境下的并发安全问题,java5还在java.util.concurrent包下提供了一些多线程支持的集合类。
在学习Java中的集合类的API、编程原理的时候,我们一定要明白,集合是一个很古老的数学概念,它远远早于Java的出现。从数学概念的角度来理解集合能帮助我们更好的理解编程中什么时候该使用什么类型的集合类。
Java容器类类库的用途是保存对象,并将其划分为两个不同的概念:
1 Collection
一组对立的元素,通常这些元素都服从某种规则 1.1 List必须保持元素特定的顺序 1.2 Set不能有重复元素 1.3 Queue保持一个队列 先进先出 的顺序
2 Map
一组成对的键值对对象
Collection和Map的区别在于容器中每个位置保存的元素个数:
1 Collection 每个位置只能保存一个元素 对象
2 Map保存的是键值对,就像一个小型数据库。我们可以通过键找到该键对应的值
2. Java集合类架构层次关系
1. Interface Iterable
迭代器接口,这是Collection类的父接口。实现这个Iterable接口的对象允许使用foreach进行遍历,也就是说,所有的Collection集合对象都具有foreach可遍历性。这个Iterable接口只有一个方法: iterator 。它返回一个代表当前集合对象的泛型 迭代器,用于之后的遍历操作
1.1 Collection
Collection是最基本的集合接口,一个Collection代表一组Object的集合,这些Object被称作Collection的元素。Collection是一个接口,用以提供规范定义,不能被实例化使用
1 Set
Set集合类似于一个罐子,丢进Set集合里的多个对象之间没有明显的顺序。Set继承自Collection接口,不能包含有重复元素 记住,这是整个Set类层次的共有属性 。
Set判断两个对象相同不是使用 运算符,而是根据equals方法。也就是说,我们在加入一个新元素的时候,如果这个新元素对象和Set中已有对象进行注意equals比较都返回false, 则Set就会接受这个新元素对象,否则拒绝。
因为Set的这个制约,在使用Set集合的时候,应该注意两点:1 为Set集合里的元素的实现类实现一个有效的equals Object 方法、2 对Set的构造函数,传入的Collection参数不能包含重复的元素 1.1 HashSet HashSet是Set接口的典型实现,HashSet使用HASH算法来存储集合中的元素,因此具有良好的存取和查找性能。当向HashSet集合中存入一个元素时,HashSet会调用该对象的hash Code 方法来得到该对象的hashCode值,然后根据该HashCode值决定该对象在HashSet中的存储位置。 值得主要的是,HashSet集合判断两个元素相等的标准是两个对象通过equals 方法比较相等,并且两个对象的hashCode 方法的返回值相等 1.1.1 LinkedHashSet LinkedHashSet集合也是根据元素的hashCode值来决定元素的存储位置,但和HashSet不同的是,它同时使用链表维护元素的次序,这样使得元素看起来是以插入的顺序保存的 。当遍历LinkedHashSet集合里的元素时,LinkedHashSet将会按元素的添加顺序来访问集合里的元素。 LinkedHashSet需要维护元素的插入顺序,因此性能略低于HashSet的性能,但在迭代访问Set里的全部元素时 遍历 将有很好的性能 链表很适合进行遍历 1.2 SortedSet 此接口主要用于排序操作,即实现此接口的子类都属于排序的子类 1.2.1 TreeSet TreeSet是SortedSet接口的实现类,TreeSet可以确保集合元素处于排序状态 1.3 EnumSet EnumSet是一个专门为枚举类设计的集合类,EnumSet中所有元素都必须是指定枚举类型的枚举值,该枚举类型在创建EnumSet时显式、或隐式地指定。EnumSet的集合元素也是有序 的
您可能关注的文档
最近下载
- 股市主力操盘盘 口摩斯密码(原创内容,侵权必究).pptx
- 人教部编版小学四年级语文上册期末复习计划及全册单元复习课教案.docx VIP
- 幼儿园教师业务水平知识考试题(附答案).docx VIP
- 西北师范大学2022-2023学年第1学期《宏观经济学》期末考试试卷(A卷)附标准答案.docx
- 高三一轮复习生物【知识精研】免疫失调与免疫学的应用课件.pptx VIP
- 市政工程占道施工方案【可编辑】.doc
- 崩漏(功能失调性子宫出血)中医临床路径.pdf VIP
- 课件兽医法律法规.ppt
- 《人类简史》6分钟读完《人类简史》全部精华.docx VIP
- ipc6013中文版挠性印制板质量要求与性能规范汇编.doc
原创力文档


文档评论(0)