1、Hashset是基于依赖HashMap实现的,把元素作为key,默认object作为value形成键值对。所有Hashset是非线程安全的,元素不可以重复。
public class HashSet<E>
extends AbstractSet<E>
implements Set<E>, Cloneable, java.io.Serializable
{
static final long serialVersionUID = -5024744406713321676L;
private static final Object PRESENT = new Object();
private transient HashMap<E,Object> map;
2、hashset是基于依赖HashMap形成的存储数据结构。
public HashSet() {
map = new HashMap<E,Object>();
}
3、add,只把Key添加了,而value为默认的虚拟值。所有hashset不允许元素重复,因为元素作为key存储到hashmap中了。
public boolean add(E e) {
return map.put(e, PRESENT)==null;
}
4、