【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數組長度取摸
相關文章
相關標籤/搜索