Map

HashMap  null可以作爲鍵、值保存。Hashtable不行。HashMap.get()返回null既可以表示key不存在,也可以表示key對應值爲null.Hashtable.get()返回null表示不存在key。

HashMap線程不安全  Hashtable線程安全。put、get、remove、containsKey、contains...方法上面都加了synchronized。但是對於混合使用時就不是線程安全的了。如:

if(table.contains(key)){
   table.remove(key);
 }

如果您要按自然順序或自定義順序遍歷鍵,那麼TreeMap會更好

ConcurrentHashMap默認分爲16個桶。可以16個線程同時執行寫、刪等常規操作。

他的遍歷是new一個新的數組。這樣iterator既可以使用老的數據。寫的線程也可以併發的完成改變。就不會再拋異常了。

 

 

http://www.360doc.com/content/13/0807/16/11947209_305402798.shtml
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章