调试JDK源码-HashSet实现原理
生活随笔
收集整理的這篇文章主要介紹了
调试JDK源码-HashSet实现原理
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
調(diào)試JDK源碼-一步一步看HashMap怎么Hash和擴(kuò)容
調(diào)試JDK源碼-ConcurrentHashMap實現(xiàn)原理
調(diào)試JDK源碼-HashSet實現(xiàn)原理
調(diào)試JDK源碼-調(diào)試JDK源碼-Hashtable實現(xiàn)原理以及線程安全的原因
?
?
?
代碼
Set<String> s=new HashSet<String>();s.add("http://blog.csdn.net/unix21");s.add("ABCDEF");s.add("123456");
?
hashSet是基于hashMap的
?
add方法
?
進(jìn)入hashMap類的put方法,后面的參考前文即可
?
下一步完成插入
?
下一步
?
由于HashSet其實只要key沒用value,那么在hashMap中的Value是什么呢?
所以看出3次都是同一個Object,這個是預(yù)定義的
public class HashSet<E>extends AbstractSet<E>implements Set<E>, Cloneable, java.io.Serializable
{static final long serialVersionUID = -5024744406713321676L;private transient HashMap<E,Object> map;// Dummy value to associate with an Object in the backing Mapprivate static final Object PRESENT = new Object();
addall方法
總結(jié)
以上是生活随笔為你收集整理的调试JDK源码-HashSet实现原理的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Linux环境编译安装OpenJDK
- 下一篇: 调试JDK源码-Hashtable实现原