HashMap
查询和插入速度极快,但是线程不安全,在多线程情况下在扩容的情况下可能会形成闭环链路,耗光cpu资源。

Hashtable
线程安全,但性能较差,已经不推荐使用

面试题:HashMap,Hashtable, ConcurrentHashMap,LinkedHashMap有什么区别

ConcurrentHashMap
线程安全,而且采用分段锁的方式进行数据同步,因此相对于Hashtable来说,效率要高。但是因为引入了段的概念,所以每次元素插入或者获取,需要进行两次哈希算法,第一次确定到该元素位于哪一段,第二次才能真正确定到元素位置。因此效率会低于HashMap。不过在多线程情况下,这种性能的牺牲换取数据安全是非常值得的。因此在多线程的情况下应该首选ConcurrentHashMap。

LinkedHashMap
基本和HashMap实现类似,多了一个链表来维护元素插入的顺序,因此维护的效率会比HashMap略低。但是因为有链表的存在,遍历效率会高于HashMap。

面试题:HashMap,Hashtable, ConcurrentHashMap,LinkedHashMap有什么区别

面试题:HashMap,Hashtable, ConcurrentHashMap,LinkedHashMap有什么区别

相关文章:

  • 2021-10-29
  • 2021-10-23
  • 2021-10-20
  • 2022-01-06
  • 2022-12-23
  • 2021-07-27
  • 2022-12-23
  • 2021-08-03
猜你喜欢
  • 2022-12-23
  • 2022-12-23
  • 2021-08-11
  • 2021-08-03
  • 2021-04-11
  • 2022-01-09
  • 2022-12-23
相关资源
相似解决方案