- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
对Java中Set的深入研究
对Java中Set的深入研究
Set和数学中的集合是同一个概念,就是没有重复元素的集合。 这篇文章主要论述了Set是如何实现没有重复元素(no?duplicate?elements)的,以及阐述了什么是“重复”(duplicate),是相同的地址空间?是equals的返回值为true?是compareTo的返回值为0??还是有相同的hashCode?本文还给出了在什么情况下使用什么样的Set的建议。 注:本文不涉及范型。 1、树形结构: public?interface?Set?extends?Collection{} public?abstract?class?AbstractSet?extends?AbstractCollection?implements?Set{} public?class?CopyOnWriteArraySetextends?AbstractSetimplements?Serializable{} public?abstract?class?EnumSetextends?AbstractSetimplements?Cloneable,?Serializable{} public?class?HashSetextends?AbstractSetimplements?Set,?Cloneable,?Serializable{} public?final?class?JobStateReasonsextends?HashSetimplements?PrintJobAttribute{} public?class?LinkedHashSetextends?HashSetimplements?Set,?Cloneable,?Serializable{} public?class?TreeSetextends?AbstractSetimplements?SortedSet,?Cloneable,?Serializable{} 可以看出,可以实例化的类为:CopyOnWriteArraySet,HashSet,LinkedHashSet,TreeSet。 2、Set是如何实现元素唯一性的 javadoc中对Set的描述第一段如下:“A?collection?that?contains?no?duplicate?elements.?More?formally,?sets?contain?no?pair?of?elements?e1?and?e2?such?that?e1.equals(e2),?and?at?most?one?null?element.?As?implied?by?its?name,?this?interface?models?the?mathematical?set?abstraction.” 这段话是对是错,请看下面分析。 要进行下面的论述,我们先了解一下Map。Map中的元素是“键-值”对,其中“键”必须是唯一的。TreeSet和HashSet就是利用这个特性实现“no?duplicate?elements”。它把set中的元素作为Map中的“键”,从而保持元素的唯一性。这些键在Map中又是如何区分的呢?不同的Map有不同的做法,而且区别很大。 下面我们分别就TreeSet、HashSet和CopyOnWriteArraySet进行论述: 2.1、TreeSet部分: 以下以TreeSet为例进行分析。 请看TreeSet的部分实体: public?class?TreeSet?extends?AbstractSet implements?SortedSet,?Cloneable,?java.io.Serializable { //?The?backing?Map private?transient?SortedMap?m; //?The?keySet?view?of?the?backing?Map private?transient?Set?keySet; //?Dummy?value?to?associate?with?an?Object?in?the?backing?Map //这是每个键所指的对像 private?static?final?Object?PRESENT?=?new?Object(); //constructor private?TreeSet(SortedMap?m)?{ this.m?=?m; keySet?=?m.keySet(); } public?TreeSet()?{ this(ne
您可能关注的文档
最近下载
- 译林版5年级上册英语全册教学课件(2022年12月修订).pptx
- 机械制造技术(第4版)第14章 机械制造工艺规程设计.ppt VIP
- 电磁振动排种器振动系统参数的确定.pdf VIP
- 《中国金融发展史》课件.ppt VIP
- HTN78A3_Datasheet_V0.1佰泰盛世科技.pdf VIP
- 一种排种器振动试验台.pdf VIP
- 西师版六年级上册数学(全册)课件.pptx VIP
- 北师大版小学三年级数学上册课件【全册】.pptx VIP
- 2025-2030原料药行业市场深度调研及前景趋势与投资研究报告.docx
- 机械制造技术第4版李华.电子教案42962第13章节机械制造工艺尺寸链幻灯片.ppt VIP
文档评论(0)