zoukankan      html  css  js  c++  java
  • HashSet源码

    HashSet实现Set接口,其中的很多方法都是用一个HashMap实现的

       

       

       

    HashSet中的元素都存放在HashMapkey上面,相对于HashMap用了一个entry存放keyvalueHashSet只存放了key值,也就只用到了HashMap中的key

       

    value中的值都是统一的一个private static final Object PRESENT = new Object();

       

       

    HashSetadd方法调用的是底层HashMap中的put()方法,而如果是在HashMap中调用put,首先会判断key是否存在,如果key存在则修改value值,如果key不存在这插入这个key-value。而在set中,因为value值没有用,也就不存在修改value值的说法,因此往HashSet中添加元素,首先判断元素(也就是key)是否存在,如果不存在这插入,如果存在着不插入,这样HashSet中就不存在重复值。

       

       

       

       

       

       

  • 相关阅读:
    SQL语言
    数组的指针
    Java泛型
    python面向对象(下)
    Java枚举类enum
    理解Java的GC日志
    python生成器
    Java并发编程之ThreadLocal类
    python面向对象(上)
    Java并发编程之闭锁简介
  • 原文地址:https://www.cnblogs.com/keedor/p/4390254.html
Copyright © 2011-2022 走看看