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、

本文深入探讨了HashSet的工作原理,包括其内部实现机制、依赖HashMap存储结构的特点,并解释了如何通过键值对的方式避免元素重复,以及add方法的具体实现。
839

被折叠的 条评论
为什么被折叠?



