永发信息网

HashMap HashTable和ConcurrentHashMap的区别

答案:2  悬赏:10  手机版
解决时间 2021-01-28 05:16
  • 提问者网友:动次大次蹦擦擦
  • 2021-01-28 01:16
HashMap HashTable和ConcurrentHashMap的区别
最佳答案
  • 五星知识达人网友:孤独的牧羊人
  • 2021-01-28 02:08
最大的区别就是ConcurrentHashMap是线程安全的,hashMap不是线程安全的。
为什么线程安全呢:
ConcurrentHashMap代码中可以看出,它引入了一个“分段锁”的概念,具体可以理解为把一个大的Map拆分成N个小的HashTable,根据key.hashCode()来决定把key放到哪个HashTable中。
在ConcurrentHashMap中,就是把Map分成了N个Segment,put和get的时候,都是现根据key.hashCode()算出放到哪个Segment中:
全部回答
  • 1楼网友:duile
  • 2021-01-28 02:15
类 hashmap 所已实现接口:serializable, cloneable, map 基于哈希表 map 接口实现实现提供所选映射操作并允许使用 null 值 null 键(除非同步允许使用 null 外hashmap 类与 hashtable 致相同)类保证映射顺序特别保证该顺序恒久变 类 concurrenthashmap 所已实现接口: serializable, concurrentmap, map 支持获取完全并发更新所期望调整并发哈希表类遵守与 hashtable 相同功能规范并且包括应于 hashtable 每版本尽管所操作都线程安全获取操作 必锁定并且 支持某种防止所访问式锁定整表类通程序完全与 hashtable 进行互操作取决于其线程安全与其同步细节关 类与 hashtable 相似与 hashmap 同 允许 null 用作键或值
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯