1. HashSet
·基于HashMap实现的,HashSet底层使用HashMap来保存所有元素,因此HashSet 的实现比较简单,相关HashSet的操作,基本上都是直接调用底层HashMap的相关方法来完成。
public class HashSet<E> extends AbstractSet<E> implements Set<E>, Cloneable, java.io.Serializable {
static final long serialVersionUID = -5024744406713321676L;
// 底层使用HashMap来保存HashSet中所有元素。
private transient HashMap<E,Object> map;
// 定义一个虚拟的Object对象作为HashMap的value,将此对象定义为static final。
private static final Object PRESENT = new Object();
public HashSet() {
map = new HashMap<E,Object>();
}
public Iterator<E> iterator() {
return map.keySet().iterator();
}
public int size() {
return map.size();
}
public boolean isEmpty() {
return map.isEmpty();
}
public boolean add(E e) {
return map.put(e, PRESENT)==null;
}
}
·HashMap中value的生成:系统构造一个static final的Object对象作为HashMap的value。
·存放的元素就是HashMap的keySet--不允许重复,无序,允许null;随机存取。
2.LinkedHashSet
·LinkedHashSet底层使用LinkedHashMap来保存所有元素,它继承与HashSet,其所有的方法操作与HashSet相同。
·仅仅提供了四个构造方法,并通过传递一个标识参数(作用仅仅是为了重载方法),调用父类的构造器构造一个LinkedHashMap来实现。
HashSet(int initialCapacity, float loadFactor, boolean dummy) {
map = new LinkedHashMap<E,Object>(initialCapacity, loadFactor);
}
![点击查看原始大小图片](http://dl2.iteye.com/upload/attachment/0044/7217/358efee3-0e78-3cc7-a31f-8eca60763b6f-thumb.jpg)
- 大小: 11.5 KB
![点击查看原始大小图片](http://dl2.iteye.com/upload/attachment/0044/7219/297227b2-e9b9-3fa6-8d9a-0f4ebd2de156-thumb.jpg)
- 大小: 36.5 KB
分享到:
相关推荐
Android中滑屏初探 ---- scrollTo 以及 scrollBy方法使用说明 Android中滑屏初探 ---- scrollTo 以及 scrollBy方法使用说明 Android中滑屏初探 ---- scrollTo 以及 scrollBy方法使用说明
《ODI_11G初探-简单数据传输》这一文档深入探讨了Oracle Data Integrator (ODI) 11G版本在数据传输中的应用与配置过程,为初学者提供了全面而详细的指导。ODI是Oracle公司推出的一款企业级数据集成工具,用于实现...
Springboot初探---FreeMarker 之 HelloWorld,很好的资源
广播文化类线性节目”本土化”初探------以陕西交通广播”长安处处有故事”为例.zip
广播文化类线性节目”本土化”初探------以陕西交通广播”长安处处有故事”为例.doc
人事档案社会化管理初探--也谈人档分离-论文.zip
c语言程序设计教材建设初探-程序设计-设计.pdf
小程序在博物馆展览中的潜力初探--以故宫博物院端门数字馆导览小程序为例
医院消防安全管理初探-安全管理-行业安全-消防安全.docx
90年代至新世纪我国谈话类节目 主广播文化类线性节目”本土化”初探------以陕西交通广播”长安处处有故事”为例持风格的演进.zip
《基于GDI+》2D图形软件开发方法初探——2D几何画板是一种利用Microsoft Visual C# 2.0作为开发语言,并基于Microsoft .NET Framework 2.0平台构建的2D图形软件。该软件旨在研究GDI+技术在二维图形软件开发中的应用...
国内互联网保险初探-论文.zip
基于大数据思维的银行监管数据应用初探--以3种数据挖掘技术为例.pdf
心理援助热线标准化管理流程建设初探--北京市心理援助热线电脑操作系统介绍.pdf
网络安全人才的多元主体协同育人初探--以中国网络空间安全人才教育联盟为例.pdf
基于微信雨课堂的混合式教学模式初探--以《单片机原理与应用》课程为例.pdf
中学地理计算机辅助教学初探-模板.pdf