HashSet集合底层实现原理

作者: 迦叶_金色的人生_荣耀而又辉煌 | 来源:发表于2021-01-03 10:26 被阅读0次

    上一篇 <<<基于LinkedHashMap手写LRU淘汰策略
    下一篇 >>>HashTable底层实现原理及和ConcurrentHashMap区别


    HashSet集合底层是如何实现的

    HashSet 底层是基于hashmap实现的,能够继承HashMap的所有特性,所以不能使用get方法,key也不允许重复,但支持null对象作为key。
    所以结构也是数组+链表+红黑树
    hashSet使用hashmap时,key是set的值,value是占位符,没有实际意义

    public HashSet(int initialCapacity, float loadFactor) {
           map = new HashMap<>(initialCapacity, loadFactor);
    }
    private static final Object PRESENT = new Object();
    public boolean add(E e) {
        return map.put(e, PRESENT)==null;
    }
    public boolean remove(Object o) {
        return map.remove(o)==PRESENT;
    }
    

    HashSet底层如何保证Key不允许重复

    hashmap在hashCode相同且equals比较值相同的时候执行的是更新操作,所以Hashmap中的key是唯一的,也决定了hashset元素值也是唯一的。

    相关文章

      网友评论

        本文标题:HashSet集合底层实现原理

        本文链接:https://www.haomeiwen.com/subject/sicknktx.html