hashMap与hashTable区别
1、繼承不同。
public?class?Hashtable extends?Dictionary implements?Map
?public?class?HashMap extends?AbstractMap implements?Map
2、Hashtable 中的方法是同步的,而HashMap中的方法在缺省情況下是非同步的。在多線程并發的環境下,可以直接使用Hashtable,但是要使用HashMap的話就要自己增加同步處理了。
3、Hashtable中,key和value都不允許出現null值。
在HashMap中,null可以作為鍵,這樣的鍵只有一個;可以有一個或多個鍵所對應的值為null。當get()方法返回null值時,即可以表示 HashMap中沒有該鍵,也可以表示該鍵所對應的值為null。
因此,在HashMap中不能由get()方法來判斷HashMap中是否存在某個鍵, 而應該用containsKey()方法來判斷。
4、兩個遍歷方式的內部實現上不同。
Hashtable、HashMap都使用了 Iterator。而由于歷史原因,Hashtable還使用了Enumeration的方式 。
5、哈希值的使用不同,HashTable直接使用對象的hashCode。而HashMap重新計算hash值。
6、Hashtable和HashMap它們兩個內部實現方式的數組的初始大小和擴容的方式。HashTable中hash數組默認大小是11,增加的方式是?old*2+1。HashMap中hash數組的默認大小是16,而且一定是2的指數?
轉載于:https://www.cnblogs.com/lbloveab/p/7275740.html
總結
以上是生活随笔為你收集整理的hashMap与hashTable区别的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: NYOJ 613 免费馅饼
- 下一篇: [补档][中山市选2011]杀人游戏