HashMap 与 HashSet 联系

HashMap实现 Map接口

HashSet实现Collection接口

HashSet底层是HashMap  好的 记住这个就可以了 

HashSet只存放key, value:   private static final Object PRESENT = new Object(); 一个Object常量对象

 

其value值为什么不是null ?

HashMap里面的remove:   返回删除的键值对的value  如果没有这个键 就返回null

  public V remove(Object key) {
        Node<K,V> e;
        return (e = removeNode(hash(key), key, null, false, true)) == null ?
            null : e.value;
    }

HashSet里面的remove:   返回boolean 看是否删除成功

    public boolean remove(Object o) {
        return map.remove(o)==PRESENT;
    }

如果HashSet的value是null   现在去删除一个空值  其结果会返回 true !!!

所以我们就不能判断是否移除成功

 

posted @ 2019-04-17 10:37  DDiamondd  阅读(486)  评论(0编辑  收藏  举报
TOP