Hashtable 與HashMap 的區別

2021-07-08 15:05:36 字數 951 閱讀 6739

hashtable與hashmap都實現了map介面,主要區別在於:

執行緒安全性,同步(synchronization) 和 速度

①hashtable不允許有null(key和value都不行),hashmap允許有null(key和value都可以)

②hashmap中只允許有乙個null的key,但是可以有多個null的value。即當呼叫get()是否等於null,不能判斷是否存在該鍵,因為null既可以表示不存在該鍵,也可以表示該鍵為null。

③hashtable用 enumeration,hashmap用iterat進行遍歷

④hashtable是執行緒安全的,hashmap是執行緒不安全的。因為hashtable的實現運用了synchronized鎖,而hashmap則是非synchronized的。多個執行緒可以共享hashtbale,但是如果多個執行緒沒有正確的同步性的話,是不能共享hashmap

**而且由上面結果也可以得出iterator迭代的話是從小往大遍歷的

而由enumeration遍歷的話則是從大到小的**

資料結構之HashTable與HashMap

首先介紹一下hashtable 與hashmap hashtable類實現乙個雜湊表,該雜湊表將鍵對映到相應的值。任何非 null 物件都可以用作鍵或值。hashmap是基於雜湊表的map 介面的實現。此實現提供所有可選的對映操作,並允許使用 null 值和 null 鍵。hashmap不保證對映的...

Java中HashTable和HashMap的區別

1 hashtable的方法是同步的,hashmap不同步,所以在多執行緒情況下,使用的是hashtable 2 hashtable不允許null值 key和value都不可以 hashmap允許null值 key和value都可以 3 hashtable有乙個contains 方法,功能和cont...

如何實現key, value有序的HashMap

想要寫個key,value有序的hashmap,出現效能問題,大家幫忙給個主意吧。b 先說下我的設計思路 b linkedhashmap裡面有乙個模擬的 雙向迴圈鍊錶 用來儲存entry的插入順序,我也可以採用這種方法來在插入的時候儲存key和value的有序。這裡暫定名為orderedhashma...