線程安全性:Hashtable是線程安全的,而HashMap是非線程安全的。如果需要在多線程環境下使用,應該使用Hashtable或者使用ConcurrentHashMap代替HashMap。
null鍵值:Hashtable不允許鍵值為null,如果試圖存儲null鍵值會拋出NullPointerException異常;而HashMap允許鍵值為null,可以存儲null鍵值。
繼承關系:Hashtable是基于Dictionary類的一個具體實現類,而HashMap是基于AbstractMap類的一個具體實現類。Hashtable已經不推薦使用,應該使用HashMap或者ConcurrentHashMap代替。
迭代器:Hashtable的迭代器是通過Enumeration接口實現的,而HashMap的迭代器是通過Iterator接口實現的。使用Iterator接口更方便、更安全。
初始容量和擴容機制:Hashtable的初始容量為11,負載因子為0.75,擴容時容量翻倍;而HashMap的初始容量為16,負載因子為0.75,擴容時容量增加為原容量的兩倍。HashMap的默認初始容量更大,性能更好。