HashMap
2020-04-28 16:34:19 25 举报
AI智能生成
HashMap 分析
作者其他创作
大纲/内容
底层:数组+链表
底层:数组+链表(链表长度超过8时换成红黑树)
put操作使用头插法
线程不安全
扩容时造成循环链表,在下一个读操作时可能死锁
把<font color="#c41230">链表改为红黑树</font>是为了解决链表长度增加后带来的查询慢的问题
put操作使用尾插法(解决头插法的问题)
<font color="#c41230">HashTable</font>
由于使用的锁,导致性能下降
<strong style="font-family: "Helvetica Neue", Helvetica, "Hiragino Sans GB", "Microsoft YaHei", Arial, sans-serif; font-size: inherit; letter-spacing: 2px; word-spacing: 2px; line-height: inherit; margin: 0px; padding: 0px; color: rgb(233, 105, 0);">ConcurrentHashMap</strong>
使用分段锁思想,把每一个entry数组锁起来,解决线程安全问题,因为是分段锁,所以同时解决了性能问题
收藏
收藏
0 条评论
下一页