1、hashTable是線程安全的、hashMap不是線程安全的
hashmap |
線程不安全 |
允許有null的鍵和值 |
效率高一點、 |
方法不是Synchronize的要提供外同步 |
有containsvalue和containsKey方法 |
HashMap 是Java1.2 引進的Map interface 的一個實現 |
HashMap是Hashtable的輕量級實現 |
hashtable |
線程安全 |
不允許有null的鍵和值 |
效率稍低、 |
方法是是Synchronize的 |
有contains方法方法 |
、Hashtable 繼承於Dictionary 類 |
Hashtable 比HashMap 要舊 |
2、HashMap通過hashcode對其內容進行快速查找,而 TreeMap中所有的元素都保持着某種固定的順序,如果你需要得到一個有序的結果你就應該使用TreeMap(HashMap中元素的排列順序是不固定的)。
HashMap:適用於在Map中插入、刪除和定位元素。
Treemap:適用於按自然順序或自定義順序遍歷鍵(key)。
HashMap通常比TreeMap快一點(樹和哈希表的數據結構使然),建議多使用HashMap,在需要排序的Map時候才用TreeMap。