2012-11-10 27 views
7

可能重複:
Differences between HashMap and Hashtable?如何是Hashtable的不同,以HashMap的

我見過的哈希表,並在不同的代碼中使用的哈希映射,但他們看起來像他們做同樣的事情。他們之間有區別嗎?我應該在我的代碼中使用哪一個?

+0

是的,主要的區別是,Hashtable是同步的,而HashMap不是。他們也有不同的超類層次結構。 (FWIW,由於在併發環境中使用HashMap,我曾多次在大型商業應用程序中看到相當嚴重的故障。) –

+0

順便說一下,它是「HashMap」和「Hashtable」。請注意大小寫。 –

+1

您是否考慮閱讀Javadoc? – EJP

回答

5

java.util.Hashtable中方法同步的java.util.HashMap方法不是。如果您使用Hashtable將會有一個性能問題兩個線程將能夠同時訪問其方法。 如果你在乎線程安全在你的應用程序Hashtable是要走的路。如果你不關心線程安全哈希表是有效的方法,因爲它是有效的,然後哈希表。 也java.util.Hashtable不允許任何空鍵,其中作爲java.util.HashMap允許一個空鍵。

4

Hashtable是同步的,其中HashMap不是。這意味着如果您只有一個線程訪問數據,請使用HashMap,否則使用Hashtable。

+0

它的哈希表,注意't' :) – PermGenError

+0

@GanGnaMStYleOverFlowErroR哇,從來沒有注意到,哈哈=) –

0

的HashTable dont't允許空鍵,其中作爲散列映射允許一個空鍵

相關問題