Hashtable和HashMap的區別:
1.Hashtable是基於Dictionary類的,HashMap是Java 1.2引進的Map接口的一個實現,c#中無HashMap
2.Hashtable的方法是同步的,而HashMap的方法不是
3.HashMap可以讓你將空值作為一個表的條目的key或value,Hashtable不可
Hashtable和Dictionary的區別:
(1).Hashtable不支持泛型,而Dictionary支持泛型。
Dictionary<int,string> dictionary = new Dictionary<int,string>(); Hashtable不可如此寫
(2). Hashtable 的元素屬於 Object 類型,所以在存儲或檢索值類型時通常發生裝箱和拆箱的操作,所以你可能需要進行一些類型轉換的操作,而且對於int,float這些值類型還需要進行裝箱等操作,非常耗時。
(3).單線程程序中推薦使用 Dictionary, 有泛型優勢, 且讀取速度較快, 容量利用更充分。多線程程序中推薦使用 Hashtable, 默認的 Hashtable 允許單線程寫入, 多線程讀取, 對 Hashtable 進一步調用 Synchronized() 方法可以獲得完全線程安全的類型. 而 Dictionary 非線程安全, 必須人為使用 lock 語句進行保護, 效率大減。