HashMap、HashTable、ConcurrentHashMap区别

  • HashMap与HashTable区别
  • HashMap与ConcurrentHashMap区别

1.HashMap与HashTable的区别

  • HashMap线程不安全,HashTable线程安全
  • HashMap和HashTable都是采用数组和链表的方式存储数据
  • HashMap允许键和值都为空,HashTable则不行
  • HashTable采用同步机制,用sychronized锁住整个对象,当并发量大时性能极具下降,因此HashTable性能不如HashMap
  • HashMap扩容时采用capcity*2,而HashTable则是capcity+1,HashMap采用hash法和位运算取散列值,更均匀
  • HashTable已淘汰

2.HashMap与ConcurrentHashMap区别

  • ConcurrentHashMap采用分割技术(Segment),把一个大的Map分割成N个HashTable,在对每个Segment用lock锁,只是锁定Map一部分,因此性能好
  • HashMap键值允许为空,而ConcurrentHashMap都不允许为空

参考资料:http://blog.csdn.net/seu_calvin/article/details/52653711

posted @ 2018-03-19 15:14  AK-1958  阅读(184)  评论(0编辑  收藏  举报