Java入門:Hashtable和HashMap的區別(轉)

BSDLite發表於2007-08-13
Java入門:Hashtable和HashMap的區別(轉)[@more@]Hashtable和HashMap的區別:

1.Hashtable是Dictionary的子類,HashMap是Map介面的一個實現類;

2.Hashtable 中的方法是同步的,而HashMap中的方法在預設情況下是非同步的。即是說,在多執行緒應用程式中,不用專門的操作就安全地可以使用Hashtable 了;而對於HashMap,則需要額外的同步機制。但HashMap的同步問題可透過Collections的一個靜態方法得到解決:
Map Collections.synchronizedMap(Map m)
這個方法返回一個同步的Map,這個Map封裝了底層的HashMap的所有方法,使得底層的HashMap即使是在多執行緒的環境中也是安全的。

3. 在HashMap中,null可以作為鍵,這樣的鍵只有一個;可以有一個或多個鍵所對應的值為null。當get()方法返回null值時,即可以表示 HashMap中沒有該鍵,也可以表示該鍵所對應的值為null。因此,在HashMap中不能由get()方法來判斷HashMap中是否存在某個鍵,而應該用containsKey()方法來判斷。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10617542/viewspace-955484/,如需轉載,請註明出處,否則將追究法律責任。

相關文章