HashMap
和Java中的 Hashtable
有什麼區別?
哪個對於非執行緒應用程式更有效?
HashMap
和 Hashtable
在Java中有幾個區別:
Hashtable
是同步,而HashMap
不是.這使得HashMap
更適合非執行緒應用程式,因為非同步物件通常比同步物件執行更好.
Hashtable
不允許null
鍵或值. HashMap
允許一個null
鍵和任何數量的null
值.
HashMap的一個子類是 LinkedHashMap
,因此,如果您想要可預測的迭代順序(預設情況下是插入順序),您可以輕鬆地交換HashMap
for LinkedHashMap
.如果您使用Hashtable
,這不會很簡單.
由於同步不是您的問題,我建議HashMap
.如果同步成為問題,您也可以檢視 ConcurrentHashMap
.