036_Hashtable和HashMap的区别
生活随笔
收集整理的這篇文章主要介紹了
036_Hashtable和HashMap的区别
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1. Hashtable和HashMap的區別
1.1. Hashtable線程安全, 效率低; HashMap線程不安全, 效率高
1.2. Hashtable父類是Dictionary; HashMap是AbstractMap
1.3. Hashtable鍵與值不能為null; HashMap鍵最多一個為null,值可以多個null
2. Hashtable是通過方法體上加synchronized關鍵字來保證線程安全的, HashMap則沒有synchronized關鍵字
2.1. Hashtable的put方法
2.2. HashMap的put方法
3. Hashtable鍵與值不能為null。Hashtable使用鍵直接進行了hashcode換算, 如果鍵為空就會出現空指針異常。Hashtabl同時對值進行了空值判斷, 如果值為空就會拋出一個空指針異常。
4. HashMap鍵最多一個為null,值可以多個null。HashMap在對鍵進行hash換算時, 如果發現鍵為空, hash值就是0, 所以鍵允許有一個null。HashMap存放時并不關心值, 所以值可以多個空。
總結
以上是生活随笔為你收集整理的036_Hashtable和HashMap的区别的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 035_使用Enumeration遍历V
- 下一篇: 037_JDK的Iterator接口