HashMap 和 HashTable的區別

1.HashMap 與 HashTable的區別:

  • HashMap和Hashtable的區別。
    1:hashMap 是非線程安全的。效率高。
    hashTable 是線程安全的。效率低。
    HashMap是Hashtable的輕量級實現(非線程安全的實現),:
    2:他們都完成了Map接口主要區別在於HashMap允許空(null)鍵值(key),由於非線程安全,效率上可能高於Hashtable。
    HashMap允許將null作爲一個entry的key或者value,而Hashtable不允許。

3:HashMap把Hashtable的contains方法去掉了,改成containsvalue和containsKey因爲contains方法容易讓人引起誤解。 Hashtable繼承自Dictionary類,而HashMap是Java1.2引進的Map interface的一個實現。
最大的不同是,
Hashtable的方法是Synchronize的,而HashMap不是,在多個線程訪問Hashtable時,不需要自己爲它的方法實現同步,而HashMap 就必須爲之提供外同步。
Hashtable和HashMap採用的hash/rehash算法都大概一樣,所以性能不會有很大的差異。

  • @author Administrator

public class HashTableDemo {

	public static void main(String[] args) {
		HashMap<String,String> hashMap = new HashMap<String,String>();
		hashMap.put(null, null);
		hashMap.containsKey("");
		hashMap.containsValue("");
		
		Hashtable<String,String> hashtable = new Hashtable<String,String>();
		hashtable.put("a", "1");
		hashtable.put(null, null);// 區別:會出現異常。
//		hashtable.contains(value) 這個方法容易誤解。
		
		
		
		
	}

}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章