HashSet详解
HashSet是基于HashMap实现的一个单列存储的集合类,将所有的数据存在HashMap的key值中,而value全部使用一个Object对象存储
继承关系
public class HashSet<E>
extends AbstractSet<E>
implements Set<E>, Cloneable, java.io.Serializable
继承了AbstractSet类,实现了Set接口、Cloneable接口和Serializable接口,所以HashSet是支持克隆和序列化的
源码分析
关键变量
// 使用HashMap存储数据 map的key为HashSet的元素值
private transient HashMap<E,Object> map;
// Dummy value to associate with an Object in the backing Map
// map中所有的值都是该Object对象
private static final Object PRESENT = new Object();
构造器
// 无参构造器,直接实例化一个HashMap
public HashSet() {
map = new