HashMap:
查詢和插入速度極快,但是線程不安全,在多線程情況下在擴容的情況下可能會形成閉環鏈路,耗光cpu資源。
LinkedHashMap:
基本和HashMap實現類似,多了一個鏈表來維護元素插入的順序,因此維護的效率會比HashMap略低。但是因為有鏈表的存在,遍歷效率會高於HashMap。
HashTable:
線程安全,但性能較差,已經不推薦使用
ConcurrentHashMap:
線程安全,而且採用分段鎖的方式進行數據同步,因此相對於Hashtable來說,效率要高。但是因為引入了段的概念,所以每次元素插入或者獲取,需要進行兩次哈希算法,第一次確定到該元素位於哪一段,第二次才能真正確定到元素位置。因此效率會低於HashMap。不過在多線程情況下,這種性能的犧牲換取數據安全是非常值得的。因此在多線程的情況下應該首選ConcurrentHashMap。
閱讀更多 互聯網十年老兵 的文章