HashSet源码分析
hashSet内部是利用hashMap实现的,将值存在hashmap的key上这也是为什么hashset不允许存取重复值得原因。
数据结构
private transient HashMap<E,Object> map; // 与支持映射中的对象关联的虚拟值 ,map中的value,只是一个无意义的空对象 private static final Object PRESENT = new Object();
默认的构造函数
public HashSet() { map = new HashMap<>(); }
查询内容的时候实际是在map中查询key
public boolean contains(Object o) { return map.containsKey(o); }
增加的时候,在key的位置放置要存的值,在value中放置一个没有意义的空对象
public boolean add(E e) { return map.put(e, PRESENT)==null; }
相关推荐
瓜牛呱呱 2020-11-12
柳木木的IT 2020-11-04
yifouhu 2020-11-02
lei0 2020-11-02
源码zanqunet 2020-10-28
源码zanqunet 2020-10-26
一叶梧桐 2020-10-14
码代码的陈同学 2020-10-14
lukezhong 2020-10-14
lzzyok 2020-10-10
anchongnanzi 2020-09-21
clh0 2020-09-18
changcongying 2020-09-17
星辰大海的路上 2020-09-13
abfdada 2020-08-26
mzy000 2020-08-24
shenlanse 2020-08-18
zhujiangtaotaise 2020-08-18
xiemanR 2020-08-17