a.Hashtable是繼承自陳舊的Dictionary類的,HashMap繼承自AbstractMap類同時是Java 1.2引進的Map介面的一個實現。 b.也許最重要的不同是Hashtable的方法是同步的,而HashMap的方法不是。這就意味著,然你可以不用採取任何特殊的行為就可以在一個 多執行緒的應用程式中用一個Hashtable,但你必須同樣地為一個HashMap提供外同步。一個方便的方法就是利用Collections類的靜態的synchronizedMap()方法,它建立一個執行緒安全的Map物件,並把它作為一個封裝的物件來返回。這個物件的方法可以讓你同步訪問潛在的HashMapC.HashTable的方法是同步的,HashMap未經同步,所以在多執行緒場合要手動同步HashMap這個區別就像Vector和ArrayList一樣。 D.HashTable不允許null值(key和value都不可以),HashMap允許null值(key和value都可以)。 E.HashTable有一個contains(Object value),功能和containsValue(Object value)功能一樣。
a.Hashtable是繼承自陳舊的Dictionary類的,HashMap繼承自AbstractMap類同時是Java 1.2引進的Map介面的一個實現。 b.也許最重要的不同是Hashtable的方法是同步的,而HashMap的方法不是。這就意味著,然你可以不用採取任何特殊的行為就可以在一個 多執行緒的應用程式中用一個Hashtable,但你必須同樣地為一個HashMap提供外同步。一個方便的方法就是利用Collections類的靜態的synchronizedMap()方法,它建立一個執行緒安全的Map物件,並把它作為一個封裝的物件來返回。這個物件的方法可以讓你同步訪問潛在的HashMapC.HashTable的方法是同步的,HashMap未經同步,所以在多執行緒場合要手動同步HashMap這個區別就像Vector和ArrayList一樣。 D.HashTable不允許null值(key和value都不可以),HashMap允許null值(key和value都可以)。 E.HashTable有一個contains(Object value),功能和containsValue(Object value)功能一樣。