【JAVA基礎】hashMap 與 hashtable 的區別
1.相同點:數組
- 都是實現接口map
- 都是key-value類型的
- 都是由數組實現
2.不一樣點:安全
- HashMap是非synchronized,而Hashtable是synchronized(線程安全的一個Collection)
- HashMap能夠接受爲null的鍵值(key)和值(value),而Hashtable則不行
- 繼承不一樣(hashtable 繼承Dictionary 、hashmap 繼承AbstractMap )
- 哈希值的使用不一樣,HashTable直接使用對象的hashCode。而HashMap從新計算hash值。
- 數組默認大小不同 hashMap(16)增長的方式是 2的指數 ---- hashtable(11)增長的方式是 old*2+1
- 計算hash的方法不一樣:Hashtable計算hash是直接使用key的hashcode對table數組的長度直接進行取模;HashMap計算hash對key的hashcode進行了二次hash,以得到更好的散列值,而後對table數組長度取摸
歡迎關注本站公眾號,獲取更多信息