2012-05-01 60 views
3

Java的java.util.Hashtable具有和java.util.HashMap相同的功能。他們的主要區別是Hashtable是線程安全的並且同步,而HashMap不是。從JDK5開始,我們有可用於多線程上下文的ConcurrentHashMap。它的性能比Hashtable更好。那麼我們有什麼理由在將來使用Hashtable因爲我們有ConcurrentHashMap,我們需要Hashtable嗎?

回答

5

反向兼容性是Hashtable仍然在JDK中的唯一原因。

另外,Hashtable的另一替代方案是Collections.synchronziedMap

+0

由於ConcurrentHashMap比synchronizedMap有更好的性能,我們有理由使用synchronizedMap嗎? – Jacky

+1

@Jacky不,同樣的原因適用:它*之前存在,因此它將留在那裏 - Sun/oracle向後兼容性相當嚴重,基本上不會從JDK中刪除任何東西(JDK7中仍有一些方法在拼寫錯誤1.0並更名爲1.1) – Voo

+0

明白了,非常感謝! – Jacky

0

有一些現有的接口use HashTable。在大多數情況下,如果不是所有情況下,都不能在不破壞兼容性的情況下進行更換

相關問題