<html xmlns="http://www.w3.org/1999/xhtml"><head><meta charset="utf-8"><meta name="generator" content="pdf2htmlEX"><meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"><link rel="stylesheet" href="https://csdnimg.cn/release/download_crawler_static/css/base.min.css"><link rel="stylesheet" href="https://csdnimg.cn/release/download_crawler_static/css/fancy.min.css"><link rel="stylesheet" href="https://csdnimg.cn/release/download_crawler_static/11906539/raw.css"><script src="https://csdnimg.cn/release/download_crawler_static/js/compatibility.min.js"></script><script src="https://csdnimg.cn/release/download_crawler_static/js/pdf2htmlEX.min.js"></script><script>try{pdf2htmlEX.defaultViewer = new pdf2htmlEX.Viewer({});}catch(e){}</script><title></title></head><body><div id="sidebar" style="display: none"><div id="outline"></div></div><div id="pf1" class="pf w0 h0" data-page-no="1"><div class="pc pc1 w0 h0"><img class="bi x0 y0 w1 h1" alt="" src="https://csdnimg.cn/release/download_crawler_static/11906539/bg1.jpg"><div class="t m0 x1 h2 y1 ff1 fs0 fc0 sc0 ls0 ws0"> <span class="_ _0"></span>回首<span class="_ _0"></span>页<span class="_ _0"></span> <span class="fc1">(<span class="_ _0"></span>/<span class="_ _0"></span>) <span class="_ _0"></span> <span class="_ _0"></span> <span class="_ _0"></span> <span class="_ _0"></span> 新<span class="_ _0"></span>的<span class="_ _0"></span>主题<span class="_ _0"></span>,<span class="_ _0"></span>右<span class="_ _0"></span>下<span class="_ _0"></span>角可<span class="_ _0"></span>以<span class="_ _0"></span>设<span class="_ _0"></span>置<span class="_ _0"></span>,欢<span class="_ _0"></span>迎<span class="_ _0"></span>大<span class="_ _0"></span>家<span class="_ _0"></span>提出<span class="_ _0"></span>建<span class="_ _0"></span>议<span class="_ _0"></span>。</span></div><div class="t m0 x2 h3 y2 ff2 fs1 fc1 sc0 ls0 ws0">Ja<span class="_ _0"></span>va<span class="_ _0"></span>7<span class="_ _0"></span>/8<span class="_ _0"></span> 中<span class="_ _0"></span>的<span class="_ _0"></span> H<span class="_ _0"></span>as<span class="_ _0"></span>h<span class="_ _0"></span>M<span class="_ _0"></span>ap <span class="_ _0"></span>和<span class="_ _0"></span> C<span class="_ _0"></span>on<span class="_ _0"></span>c<span class="_ _0"></span>ur<span class="_ _0"></span>r<span class="_ _0"></span>en<span class="_ _0"></span>tH<span class="_ _0"></span>a<span class="_ _0"></span>sh<span class="_ _0"></span>M<span class="_ _0"></span>ap<span class="_ _0"></span> <span class="_ _0"></span>全解<span class="_ _0"></span>析</div><div class="t m0 x3 h2 y3 ff1 fs0 fc1 sc0 ls0 ws0">更新<span class="_ _0"></span>时<span class="_ _0"></span>间<span class="_ _0"></span>:2<span class="_ _0"></span>0<span class="_ _0"></span>18<span class="_ _0"></span>-<span class="_ _0"></span>02<span class="_ _0"></span>-<span class="_ _0"></span>2<span class="_ _0"></span>4</div><div class="t m0 x4 h2 y4 ff1 fs0 fc1 sc0 ls0 ws0">今天<span class="_ _0"></span>发<span class="_ _0"></span>一<span class="_ _0"></span>篇"<span class="_ _0"></span>水<span class="_ _0"></span>文"<span class="_ _0"></span>,<span class="_ _0"></span>可<span class="_ _0"></span>能<span class="_ _0"></span>很多<span class="_ _0"></span>读<span class="_ _0"></span>者<span class="_ _0"></span>都<span class="_ _0"></span>会表<span class="_ _0"></span>示<span class="_ _0"></span>不<span class="_ _0"></span>理<span class="_ _0"></span>解,<span class="_ _0"></span>不<span class="_ _0"></span>过我<span class="_ _0"></span>想<span class="_ _0"></span>把<span class="_ _0"></span>它作<span class="_ _0"></span>为<span class="_ _0"></span>并<span class="_ _0"></span>发序<span class="_ _0"></span>列<span class="_ _0"></span>文<span class="_ _0"></span>章<span class="_ _0"></span>中不<span class="_ _0"></span>可<span class="_ _0"></span>缺<span class="_ _0"></span>少<span class="_ _0"></span>的一<span class="_ _0"></span>块<span class="_ _0"></span>来<span class="_ _0"></span>介</div><div class="t m0 x4 h2 y5 ff1 fs0 fc1 sc0 ls0 ws0">绍。<span class="_ _0"></span>本<span class="_ _0"></span>来<span class="_ _0"></span>以为<span class="_ _0"></span>花<span class="_ _0"></span>不<span class="_ _0"></span>了<span class="_ _0"></span>多少<span class="_ _0"></span>时<span class="_ _0"></span>间的<span class="_ _0"></span>,<span class="_ _0"></span>不<span class="_ _0"></span>过最<span class="_ _0"></span>终<span class="_ _0"></span>还<span class="_ _0"></span>是<span class="_ _0"></span>投入<span class="_ _0"></span>了<span class="_ _0"></span>挺<span class="_ _0"></span>多<span class="_ _0"></span>时间<span class="_ _0"></span>来<span class="_ _0"></span>完<span class="_ _0"></span>成<span class="_ _0"></span>这篇<span class="_ _0"></span>文<span class="_ _0"></span>章<span class="_ _0"></span>的<span class="_ _0"></span>。</div><div class="t m0 x4 h2 y6 ff1 fs0 fc1 sc0 ls0 ws0">网上<span class="_ _0"></span>关<span class="_ _0"></span>于<span class="_ _0"></span> H<span class="_ _0"></span>as<span class="_ _0"></span>h<span class="_ _0"></span>M<span class="_ _0"></span>a<span class="_ _0"></span>p <span class="_ _0"></span>和<span class="_ _0"></span> C<span class="_ _0"></span>o<span class="_ _0"></span>nc<span class="_ _0"></span>u<span class="_ _0"></span>rr<span class="_ _0"></span>en<span class="_ _1"></span>tH<span class="_ _0"></span>as<span class="_ _0"></span>h<span class="_ _0"></span>M<span class="_ _0"></span>ap<span class="_ _0"></span> <span class="_ _0"></span>的文<span class="_ _0"></span>章<span class="_ _0"></span>确<span class="_ _0"></span>实不<span class="_ _0"></span>少<span class="_ _0"></span>,<span class="_ _0"></span>不过<span class="_ _0"></span>缺<span class="_ _0"></span>斤<span class="_ _0"></span>少<span class="_ _0"></span>两的<span class="_ _0"></span>文<span class="_ _0"></span>章<span class="_ _0"></span>比<span class="_ _0"></span>较多<span class="_ _0"></span>,<span class="_ _0"></span>所<span class="_ _0"></span>以<span class="_ _0"></span>才想<span class="_ _0"></span>自<span class="_ _0"></span>己</div><div class="t m0 x4 h2 y7 ff1 fs0 fc1 sc0 ls0 ws0">也写<span class="_ _0"></span>一<span class="_ _0"></span>篇<span class="_ _0"></span>,把<span class="_ _0"></span>细<span class="_ _0"></span>节<span class="_ _0"></span>说<span class="_ _0"></span>清楚<span class="_ _0"></span>说<span class="_ _0"></span>透,<span class="_ _0"></span>尤<span class="_ _0"></span>其<span class="_ _0"></span>像 <span class="_ _0"></span>J<span class="_ _0"></span>a<span class="_ _0"></span>va<span class="_ _0"></span>8<span class="_ _0"></span> 中<span class="_ _0"></span>的<span class="_ _0"></span> C<span class="_ _0"></span>o<span class="_ _0"></span>nc<span class="_ _0"></span>u<span class="_ _0"></span>r<span class="_ _0"></span>re<span class="_ _0"></span>n<span class="_ _0"></span>tH<span class="_ _0"></span>a<span class="_ _0"></span>sh<span class="_ _0"></span>M<span class="_ _0"></span>a<span class="_ _0"></span>p,<span class="_ _0"></span>大<span class="_ _0"></span>部<span class="_ _0"></span>分文<span class="_ _0"></span>章<span class="_ _0"></span>都<span class="_ _0"></span>说<span class="_ _0"></span>不清<span class="_ _0"></span>楚<span class="_ _0"></span>。<span class="_ _0"></span>终<span class="_ _0"></span>归是</div><div class="t m0 x4 h2 y8 ff1 fs0 fc1 sc0 ls0 ws0">希望<span class="_ _0"></span>能<span class="_ _0"></span>降<span class="_ _0"></span>低大<span class="_ _0"></span>家<span class="_ _0"></span>学<span class="_ _0"></span>习<span class="_ _0"></span>的成<span class="_ _0"></span>本<span class="_ _0"></span>,不<span class="_ _0"></span>希<span class="_ _0"></span>望<span class="_ _0"></span>大家<span class="_ _0"></span>到<span class="_ _0"></span>处<span class="_ _0"></span>找<span class="_ _0"></span>各种<span class="_ _0"></span>不<span class="_ _0"></span>是<span class="_ _0"></span>很<span class="_ _0"></span>靠谱<span class="_ _0"></span>的<span class="_ _0"></span>文<span class="_ _0"></span>章<span class="_ _0"></span>,看<span class="_ _0"></span>完<span class="_ _0"></span>一<span class="_ _0"></span>篇<span class="_ _0"></span>又一<span class="_ _0"></span>篇<span class="_ _0"></span>,<span class="_ _0"></span>可是<span class="_ _0"></span>还<span class="_ _0"></span>是<span class="_ _0"></span>模模<span class="_ _0"></span>糊</div><div class="t m0 x4 h2 y9 ff1 fs0 fc1 sc0 ls0 ws0">糊。</div><div class="t m0 x4 h2 ya ff1 fs0 fc1 sc0 ls0 ws0">阅读<span class="_ _0"></span>建<span class="_ _0"></span>议<span class="_ _0"></span>:四<span class="_ _0"></span>节<span class="_ _0"></span>基<span class="_ _0"></span>本<span class="_ _0"></span>上可<span class="_ _0"></span>以<span class="_ _0"></span>进行<span class="_ _0"></span>独<span class="_ _0"></span>立<span class="_ _0"></span>阅读<span class="_ _0"></span>,<span class="_ _0"></span>建<span class="_ _0"></span>议<span class="_ _0"></span>初学<span class="_ _0"></span>者<span class="_ _0"></span>可<span class="_ _0"></span>按<span class="_ _0"></span>照 <span class="_ _0"></span>J<span class="_ _0"></span>a<span class="_ _0"></span>va<span class="_ _0"></span>7 <span class="_ _0"></span>H<span class="_ _0"></span>a<span class="_ _0"></span>sh<span class="_ _0"></span>Ma<span class="_ _0"></span>p<span class="_ _0"></span> -<span class="_ _0"></span>><span class="_ _0"></span> <span class="_ _0"></span>Ja<span class="_ _0"></span>va<span class="_ _0"></span>7</div><div class="t m0 x4 h2 yb ff1 fs0 fc1 sc0 ls0 ws0">Co<span class="_ _0"></span>n<span class="_ _0"></span>cu<span class="_ _0"></span>r<span class="_ _0"></span>re<span class="_ _0"></span>nt<span class="_ _0"></span>H<span class="_ _0"></span>a<span class="_ _0"></span>s<span class="_ _0"></span>hM<span class="_ _0"></span>ap<span class="_ _0"></span> <span class="_ _0"></span>-><span class="_ _0"></span> <span class="_ _0"></span>J<span class="_ _0"></span>av<span class="_ _0"></span>a8<span class="_ _0"></span> <span class="_ _0"></span>H<span class="_ _0"></span>as<span class="_ _0"></span>hM<span class="_ _0"></span>a<span class="_ _0"></span>p<span class="_ _0"></span> -<span class="_ _0"></span>><span class="_ _0"></span> J<span class="_ _0"></span>a<span class="_ _0"></span>va<span class="_ _0"></span>8<span class="_ _0"></span> C<span class="_ _0"></span>o<span class="_ _0"></span>nc<span class="_ _0"></span>u<span class="_ _0"></span>rr<span class="_ _0"></span>e<span class="_ _0"></span>nt<span class="_ _0"></span>H<span class="_ _0"></span>as<span class="_ _0"></span>h<span class="_ _0"></span>M<span class="_ _0"></span>ap<span class="_ _0"></span> <span class="_ _0"></span>顺<span class="_ _0"></span>序进<span class="_ _0"></span>行<span class="_ _0"></span>阅<span class="_ _0"></span>读,<span class="_ _0"></span>可<span class="_ _0"></span>适<span class="_ _0"></span>当降<span class="_ _0"></span>低<span class="_ _0"></span>阅<span class="_ _0"></span>读</div><div class="t m0 x4 h2 yc ff1 fs0 fc1 sc0 ls0 ws0">门槛<span class="_ _0"></span>。</div><div class="t m0 x4 h2 yd ff1 fs0 fc1 sc0 ls0 ws0">阅读<span class="_ _0"></span>前<span class="_ _0"></span>提<span class="_ _0"></span>:本<span class="_ _0"></span>文<span class="_ _0"></span>分<span class="_ _0"></span>析<span class="_ _0"></span>的是<span class="_ _0"></span>源<span class="_ _0"></span>码,<span class="_ _0"></span>所<span class="_ _0"></span>以<span class="_ _0"></span>至少<span class="_ _0"></span>读<span class="_ _0"></span>者<span class="_ _0"></span>要<span class="_ _0"></span>熟悉<span class="_ _0"></span>它<span class="_ _0"></span>们<span class="_ _0"></span>的<span class="_ _0"></span>接口<span class="_ _0"></span>使<span class="_ _0"></span>用<span class="_ _0"></span>,<span class="_ _0"></span>同时<span class="_ _0"></span>,<span class="_ _0"></span>对<span class="_ _0"></span>于<span class="_ _0"></span>并发<span class="_ _0"></span>,<span class="_ _0"></span>读<span class="_ _0"></span>者至<span class="_ _0"></span>少<span class="_ _0"></span>要<span class="_ _0"></span>知道</div><div class="t m0 x4 h2 ye ff1 fs0 fc1 sc0 ls0 ws0">CA<span class="_ _0"></span>S<span class="_ _0"></span>、R<span class="_ _0"></span>e<span class="_ _0"></span>en<span class="_ _0"></span>t<span class="_ _0"></span>r<span class="_ _0"></span>an<span class="_ _0"></span>tL<span class="_ _0"></span>o<span class="_ _0"></span>c<span class="_ _0"></span>k、<span class="_ _0"></span>U<span class="_ _0"></span>NS<span class="_ _0"></span>A<span class="_ _0"></span>FE<span class="_ _0"></span> <span class="_ _0"></span>操<span class="_ _0"></span>作<span class="_ _0"></span>这几<span class="_ _0"></span>个<span class="_ _0"></span>基<span class="_ _0"></span>本的<span class="_ _0"></span>知<span class="_ _0"></span>识<span class="_ _0"></span>,文<span class="_ _0"></span>中<span class="_ _0"></span>不<span class="_ _0"></span>会对<span class="_ _0"></span>这<span class="_ _0"></span>些<span class="_ _0"></span>知识<span class="_ _0"></span>进<span class="_ _0"></span>行<span class="_ _0"></span>介<span class="_ _0"></span>绍。<span class="_ _0"></span>J<span class="_ _0"></span>av<span class="_ _0"></span>a<span class="_ _0"></span>8<span class="_ _0"></span> 用<span class="_ _0"></span>到<span class="_ _0"></span>了<span class="_ _0"></span>红黑</div><div class="t m0 x4 h2 yf ff1 fs0 fc1 sc0 ls0 ws0">树,<span class="_ _0"></span>不<span class="_ _0"></span>过<span class="_ _0"></span>本文<span class="_ _0"></span>不<span class="_ _0"></span>会<span class="_ _0"></span>进<span class="_ _0"></span>行展<span class="_ _0"></span>开<span class="_ _0"></span>,感<span class="_ _0"></span>兴<span class="_ _0"></span>趣<span class="_ _0"></span>的读<span class="_ _0"></span>者<span class="_ _0"></span>请<span class="_ _0"></span>自<span class="_ _0"></span>行查<span class="_ _0"></span>找<span class="_ _0"></span>相<span class="_ _0"></span>关<span class="_ _0"></span>资料<span class="_ _0"></span>。</div><div class="t m0 x5 h2 y10 ff1 fs0 fc1 sc0 ls0 ws0">Ja<span class="_ _0"></span>v<span class="_ _0"></span>a7<span class="_ _0"></span> <span class="_ _0"></span>Ha<span class="_ _0"></span>s<span class="_ _0"></span>h<span class="_ _0"></span>Ma<span class="_ _0"></span>p</div><div class="t m0 x6 h2 y11 ff1 fs0 fc1 sc0 ls0 ws0">p<span class="_ _0"></span>ut<span class="_ _0"></span> <span class="_ _0"></span>过程<span class="_ _0"></span>分<span class="_ _0"></span>析</div><div class="t m0 x7 h2 y12 ff1 fs0 fc1 sc0 ls0 ws0">数组<span class="_ _0"></span>初<span class="_ _0"></span>始<span class="_ _0"></span>化</div><div class="t m0 x7 h2 y13 ff1 fs0 fc1 sc0 ls0 ws0">计算<span class="_ _0"></span>具<span class="_ _0"></span>体<span class="_ _0"></span>数<span class="_ _0"></span>组位<span class="_ _0"></span>置</div><div class="t m0 x7 h2 y14 ff1 fs0 fc1 sc0 ls0 ws0">添加<span class="_ _0"></span>节<span class="_ _0"></span>点<span class="_ _0"></span>到<span class="_ _0"></span>链表<span class="_ _0"></span>中</div><div class="t m0 x7 h2 y15 ff1 fs0 fc1 sc0 ls0 ws0">数组<span class="_ _0"></span>扩<span class="_ _0"></span>容</div><div class="t m0 x6 h2 y16 ff1 fs0 fc1 sc0 ls0 ws0">g<span class="_ _0"></span>et<span class="_ _0"></span> <span class="_ _0"></span>过程<span class="_ _0"></span>分<span class="_ _0"></span>析</div><div class="t m0 x5 h2 y17 ff1 fs0 fc1 sc0 ls0 ws0">Ja<span class="_ _0"></span>v<span class="_ _0"></span>a7<span class="_ _0"></span> <span class="_ _0"></span>Co<span class="_ _0"></span>n<span class="_ _0"></span>cu<span class="_ _0"></span>r<span class="_ _0"></span>r<span class="_ _0"></span>en<span class="_ _0"></span>t<span class="_ _0"></span>Ha<span class="_ _0"></span>s<span class="_ _0"></span>hM<span class="_ _0"></span>a<span class="_ _0"></span>p</div><div class="t m0 x6 h2 y18 ff1 fs0 fc1 sc0 ls0 ws0">初始<span class="_ _0"></span>化</div><div class="t m0 x6 h2 y19 ff1 fs0 fc1 sc0 ls0 ws0">p<span class="_ _0"></span>ut<span class="_ _0"></span> <span class="_ _0"></span>过程<span class="_ _0"></span>分<span class="_ _0"></span>析</div><div class="t m0 x7 h2 y1a ff1 fs0 fc1 sc0 ls0 ws0">初始<span class="_ _0"></span>化<span class="_ _0"></span>槽<span class="_ _0"></span>: <span class="_ _0"></span>en<span class="_ _0"></span>s<span class="_ _0"></span>ur<span class="_ _0"></span>e<span class="_ _0"></span>S<span class="_ _0"></span>e<span class="_ _0"></span>gm<span class="_ _0"></span>e<span class="_ _0"></span>nt</div><div class="t m0 x0 h4 y1b ff3 fs2 fc1 sc0 ls0 ws0">Java7/8 中的 <span class="_ _0"></span>HashMap 和 C<span class="_ _0"></span>oncurrentHashMap 全解<span class="_ _0"></span>析<span class="_ _2"> </span>https://javadoo<span class="_ _0"></span>p.com/post/ha<span class="_ _0"></span>shmap</div><div class="t m0 x0 h4 y1c ff3 fs2 fc1 sc0 ls0 ws0">第1页 共57页<span class="_ _3"> </span>2019/1/4 16:26</div></div><div class="pi" data-data='{"ctm":[1.568627,0.000000,0.000000,1.568627,0.000000,0.000000]}'></div></div></body></html>
<div id="pf2" class="pf w0 h0" data-page-no="2"><div class="pc pc2 w0 h0"><img class="bi x0 y0 w1 h1" alt="" src="https://csdnimg.cn/release/download_crawler_static/11906539/bg2.jpg"><div class="t m0 x7 h2 y1d ff1 fs0 fc1 sc0 ls0 ws0">获取<span class="_ _0"></span>写<span class="_ _0"></span>入<span class="_ _0"></span>锁<span class="_ _0"></span>: <span class="_ _0"></span>sc<span class="_ _0"></span>a<span class="_ _0"></span>nA<span class="_ _0"></span>n<span class="_ _0"></span>dL<span class="_ _0"></span>o<span class="_ _0"></span>ck<span class="_ _0"></span>F<span class="_ _0"></span>o<span class="_ _0"></span>rP<span class="_ _0"></span>ut</div><div class="t m0 x7 h2 y1e ff1 fs0 fc1 sc0 ls0 ws0">扩容<span class="_ _0"></span>:<span class="_ _0"></span> r<span class="_ _0"></span>eh<span class="_ _1"></span>as<span class="_ _0"></span>h</div><div class="t m0 x6 h2 y1f ff1 fs0 fc1 sc0 ls0 ws0">g<span class="_ _0"></span>et<span class="_ _0"></span> <span class="_ _0"></span>过程<span class="_ _0"></span>分<span class="_ _0"></span>析</div><div class="t m0 x6 h2 y20 ff1 fs0 fc1 sc0 ls0 ws0">并发<span class="_ _0"></span>问<span class="_ _0"></span>题<span class="_ _0"></span>分<span class="_ _0"></span>析</div><div class="t m0 x5 h2 y21 ff1 fs0 fc1 sc0 ls0 ws0">Ja<span class="_ _0"></span>v<span class="_ _0"></span>a8<span class="_ _0"></span> <span class="_ _0"></span>Ha<span class="_ _0"></span>s<span class="_ _0"></span>h<span class="_ _0"></span>Ma<span class="_ _0"></span>p</div><div class="t m0 x6 h2 y22 ff1 fs0 fc1 sc0 ls0 ws0">p<span class="_ _0"></span>ut<span class="_ _0"></span> <span class="_ _0"></span>过程<span class="_ _0"></span>分<span class="_ _0"></span>析</div><div class="t m0 x7 h2 y23 ff1 fs0 fc1 sc0 ls0 ws0">数组<span class="_ _0"></span>扩<span class="_ _0"></span>容</div><div class="t m0 x6 h2 y24 ff1 fs0 fc1 sc0 ls0 ws0">g<span class="_ _0"></span>et<span class="_ _0"></span> <span class="_ _0"></span>过程<span class="_ _0"></span>分<span class="_ _0"></span>析</div><div class="t m0 x5 h2 y25 ff1 fs0 fc1 sc0 ls0 ws0">Ja<span class="_ _0"></span>v<span class="_ _0"></span>a8<span class="_ _0"></span> <span class="_ _0"></span>Co<span class="_ _0"></span>n<span class="_ _0"></span>cu<span class="_ _0"></span>r<span class="_ _0"></span>r<span class="_ _0"></span>en<span class="_ _0"></span>t<span class="_ _0"></span>Ha<span class="_ _0"></span>s<span class="_ _0"></span>hM<span class="_ _0"></span>a<span class="_ _0"></span>p</div><div class="t m0 x6 h2 y26 ff1 fs0 fc1 sc0 ls0 ws0">初始<span class="_ _0"></span>化</div><div class="t m0 x6 h2 y27 ff1 fs0 fc1 sc0 ls0 ws0">p<span class="_ _0"></span>ut<span class="_ _0"></span> <span class="_ _0"></span>过程<span class="_ _0"></span>分<span class="_ _0"></span>析</div><div class="t m0 x7 h2 y28 ff1 fs0 fc1 sc0 ls0 ws0">初始<span class="_ _0"></span>化<span class="_ _0"></span>数<span class="_ _0"></span>组<span class="_ _0"></span>:i<span class="_ _0"></span>ni<span class="_ _0"></span>t<span class="_ _0"></span>T<span class="_ _0"></span>ab<span class="_ _0"></span>le</div><div class="t m0 x7 h2 y29 ff1 fs0 fc1 sc0 ls0 ws0">链表<span class="_ _0"></span>转<span class="_ _0"></span>红<span class="_ _0"></span>黑<span class="_ _0"></span>树:<span class="_ _0"></span> t<span class="_ _0"></span>r<span class="_ _0"></span>ee<span class="_ _0"></span>i<span class="_ _0"></span>fy<span class="_ _0"></span>B<span class="_ _0"></span>i<span class="_ _0"></span>n</div><div class="t m0 x6 h2 y2a ff1 fs0 fc1 sc0 ls0 ws0">扩容<span class="_ _0"></span>:<span class="_ _0"></span>t<span class="_ _0"></span>ry<span class="_ _0"></span>P<span class="_ _0"></span>re<span class="_ _0"></span>s<span class="_ _0"></span>i<span class="_ _0"></span>ze</div><div class="t m0 x7 h2 y2b ff1 fs0 fc1 sc0 ls0 ws0">数据<span class="_ _0"></span>迁<span class="_ _0"></span>移<span class="_ _0"></span>:<span class="_ _0"></span>tr<span class="_ _0"></span>an<span class="_ _0"></span>s<span class="_ _0"></span>fe<span class="_ _0"></span>r</div><div class="t m0 x6 h2 y2c ff1 fs0 fc1 sc0 ls0 ws0">g<span class="_ _0"></span>et<span class="_ _0"></span> <span class="_ _0"></span>过程<span class="_ _0"></span>分<span class="_ _0"></span>析</div><div class="t m0 x5 h2 y2d ff1 fs0 fc1 sc0 ls0 ws0">总结</div><div class="t m0 x4 h5 y2e ff2 fs3 fc1 sc0 ls0 ws0">Ja<span class="_ _0"></span>va<span class="_ _0"></span>7 <span class="_ _0"></span>H<span class="_ _0"></span>as<span class="_ _0"></span>hM<span class="_ _0"></span>a<span class="_ _0"></span>p</div><div class="t m0 x4 h2 y2f ff1 fs0 fc1 sc0 ls0 ws0">Ha<span class="_ _0"></span>s<span class="_ _0"></span>hM<span class="_ _0"></span>a<span class="_ _0"></span>p <span class="_ _0"></span>是<span class="_ _0"></span>最简<span class="_ _0"></span>单<span class="_ _0"></span>的<span class="_ _0"></span>,一<span class="_ _0"></span>来<span class="_ _0"></span>我<span class="_ _0"></span>们<span class="_ _0"></span>非<span class="_ _0"></span>常熟<span class="_ _0"></span>悉<span class="_ _0"></span>,<span class="_ _0"></span>二<span class="_ _0"></span>来就<span class="_ _0"></span>是<span class="_ _0"></span>它<span class="_ _0"></span>不<span class="_ _0"></span>支持<span class="_ _0"></span>并<span class="_ _0"></span>发<span class="_ _0"></span>操作<span class="_ _0"></span>,<span class="_ _0"></span>所<span class="_ _0"></span>以源<span class="_ _0"></span>码<span class="_ _0"></span>也<span class="_ _0"></span>非常<span class="_ _0"></span>简<span class="_ _0"></span>单<span class="_ _0"></span>。</div><div class="t m0 x4 h2 y30 ff1 fs0 fc1 sc0 ls0 ws0">首先<span class="_ _0"></span>,<span class="_ _0"></span>我<span class="_ _0"></span>们用<span class="_ _0"></span>下<span class="_ _0"></span>面<span class="_ _0"></span>这<span class="_ _0"></span>张图<span class="_ _0"></span>来<span class="_ _0"></span>介绍<span class="_ _0"></span> <span class="_ _0"></span>H<span class="_ _0"></span>as<span class="_ _0"></span>h<span class="_ _0"></span>M<span class="_ _0"></span>ap<span class="_ _0"></span> 的<span class="_ _0"></span>结<span class="_ _0"></span>构<span class="_ _0"></span>。</div><div class="t m0 x0 h4 y1b ff3 fs2 fc1 sc0 ls0 ws0">Java7/8 中的 <span class="_ _0"></span>HashMap 和 C<span class="_ _0"></span>oncurrentHashMap 全解<span class="_ _0"></span>析<span class="_ _2"> </span>https://javadoo<span class="_ _0"></span>p.com/post/ha<span class="_ _0"></span>shmap</div><div class="t m0 x0 h4 y1c ff3 fs2 fc1 sc0 ls0 ws0">第2页 共57页<span class="_ _3"> </span>2019/1/4 16:26</div></div><div class="pi" data-data='{"ctm":[1.568627,0.000000,0.000000,1.568627,0.000000,0.000000]}'></div></div>
<div id="pf3" class="pf w0 h0" data-page-no="3"><div class="pc pc3 w0 h0"><img class="bi x0 y0 w1 h1" alt="" src="https://csdnimg.cn/release/download_crawler_static/11906539/bg3.jpg"><div class="t m0 x1 h2 y31 ff1 fs0 fc1 sc0 ls0 ws0">这个<span class="_ _0"></span>仅<span class="_ _0"></span>仅<span class="_ _0"></span>是<span class="_ _0"></span>示意<span class="_ _0"></span>图<span class="_ _0"></span>,<span class="_ _0"></span>因<span class="_ _0"></span>为没<span class="_ _0"></span>有<span class="_ _0"></span>考<span class="_ _0"></span>虑<span class="_ _0"></span>到数<span class="_ _0"></span>组<span class="_ _0"></span>要<span class="_ _0"></span>扩容<span class="_ _0"></span>的<span class="_ _0"></span>情<span class="_ _0"></span>况,<span class="_ _0"></span>具<span class="_ _0"></span>体<span class="_ _0"></span>的后<span class="_ _0"></span>面<span class="_ _0"></span>再<span class="_ _0"></span>说。</div><div class="t m0 x4 h2 y32 ff1 fs0 fc1 sc0 ls0 ws0">大方<span class="_ _0"></span>向<span class="_ _0"></span>上<span class="_ _0"></span>,H<span class="_ _0"></span>a<span class="_ _0"></span>s<span class="_ _0"></span>hM<span class="_ _0"></span>ap<span class="_ _0"></span> <span class="_ _0"></span>里面<span class="_ _0"></span>是<span class="_ _0"></span>一<span class="_ _0"></span>个<span class="_ _0"></span><span class="ff2">数<span class="_ _0"></span>组</span>,<span class="_ _0"></span>然<span class="_ _0"></span>后<span class="_ _0"></span>数<span class="_ _0"></span>组中<span class="_ _0"></span>每<span class="_ _0"></span>个<span class="_ _0"></span>元<span class="_ _0"></span>素是<span class="_ _0"></span>一<span class="_ _0"></span>个<span class="_ _0"></span><span class="ff2">单向<span class="_ _0"></span>链<span class="_ _0"></span>表<span class="_ _0"></span></span>。</div><div class="t m0 x4 h2 y33 ff1 fs0 fc1 sc0 ls0 ws0">上图<span class="_ _0"></span>中<span class="_ _0"></span>,<span class="_ _0"></span>每个<span class="_ _0"></span>绿<span class="_ _0"></span>色<span class="_ _0"></span>的<span class="_ _0"></span>实体<span class="_ _0"></span>是<span class="_ _0"></span>嵌套<span class="_ _0"></span>类<span class="_ _0"></span> <span class="_ _0"></span>E<span class="_ _0"></span>nt<span class="_ _0"></span>ry<span class="_ _0"></span> <span class="_ _0"></span>的<span class="_ _0"></span>实<span class="_ _0"></span>例,<span class="_ _0"></span>En<span class="_ _0"></span>t<span class="_ _0"></span>ry<span class="_ _0"></span> <span class="_ _0"></span>包<span class="_ _0"></span>含<span class="_ _0"></span>四个<span class="_ _0"></span>属<span class="_ _0"></span>性<span class="_ _0"></span>:k<span class="_ _0"></span>e<span class="_ _0"></span>y<span class="_ _0"></span>, <span class="_ _0"></span>va<span class="_ _0"></span>lu<span class="_ _1"></span>e,<span class="_ _0"></span> h<span class="_ _0"></span>a<span class="_ _0"></span>s<span class="_ _0"></span>h <span class="_ _0"></span>值<span class="_ _0"></span>和用<span class="_ _0"></span>于<span class="_ _0"></span>单<span class="_ _0"></span>向链<span class="_ _0"></span>表</div><div class="t m0 x4 h2 y34 ff1 fs0 fc1 sc0 ls0 ws0">的 <span class="_ _0"></span>n<span class="_ _0"></span>ex<span class="_ _0"></span>t。</div><div class="t m0 x4 h2 y35 ff1 fs0 fc1 sc0 ls0 ws0">ca<span class="_ _0"></span>p<span class="_ _0"></span>ac<span class="_ _0"></span>i<span class="_ _0"></span>ty<span class="_ _0"></span>:<span class="_ _0"></span>当前<span class="_ _0"></span>数<span class="_ _0"></span>组<span class="_ _0"></span>容<span class="_ _0"></span>量,<span class="_ _0"></span>始<span class="_ _0"></span>终<span class="_ _0"></span>保持<span class="_ _0"></span> <span class="_ _0"></span>2^<span class="_ _0"></span>n<span class="_ _0"></span>,<span class="_ _0"></span>可以<span class="_ _0"></span>扩<span class="_ _0"></span>容<span class="_ _0"></span>,<span class="_ _0"></span>扩容<span class="_ _0"></span>后<span class="_ _0"></span>数<span class="_ _0"></span>组<span class="_ _0"></span>大小<span class="_ _0"></span>为<span class="_ _0"></span>当<span class="_ _0"></span>前的<span class="_ _0"></span> <span class="_ _0"></span>2<span class="_ _0"></span> 倍<span class="_ _0"></span>。</div><div class="t m0 x4 h2 y36 ff1 fs0 fc1 sc0 ls0 ws0">lo<span class="_ _0"></span>a<span class="_ _0"></span>dF<span class="_ _0"></span>ac<span class="_ _0"></span>t<span class="_ _0"></span>or<span class="_ _0"></span>:<span class="_ _0"></span>负<span class="_ _0"></span>载因<span class="_ _0"></span>子<span class="_ _0"></span>,<span class="_ _0"></span>默<span class="_ _0"></span>认为<span class="_ _0"></span> <span class="_ _0"></span>0.<span class="_ _0"></span>7<span class="_ _0"></span>5<span class="_ _0"></span>。</div><div class="t m0 x4 h2 y37 ff1 fs0 fc1 sc0 ls0 ws0">th<span class="_ _0"></span>re<span class="_ _0"></span>s<span class="_ _0"></span>ho<span class="_ _0"></span>l<span class="_ _0"></span>d<span class="_ _0"></span>:扩<span class="_ _0"></span>容<span class="_ _0"></span>的<span class="_ _0"></span>阈<span class="_ _0"></span>值,<span class="_ _0"></span>等<span class="_ _0"></span>于<span class="_ _0"></span> c<span class="_ _0"></span>ap<span class="_ _0"></span>a<span class="_ _0"></span>ci<span class="_ _0"></span>t<span class="_ _0"></span>y <span class="_ _0"></span>*<span class="_ _0"></span> l<span class="_ _0"></span>o<span class="_ _0"></span>ad<span class="_ _0"></span>F<span class="_ _0"></span>ac<span class="_ _0"></span>t<span class="_ _0"></span>or</div><div class="t m0 x4 h3 y38 ff2 fs1 fc1 sc0 ls0 ws0">pu<span class="_ _0"></span>t <span class="_ _0"></span>过<span class="_ _0"></span>程分<span class="_ _0"></span>析</div><div class="t m0 x4 h2 y39 ff1 fs0 fc1 sc0 ls0 ws0">还是<span class="_ _0"></span>比<span class="_ _0"></span>较<span class="_ _0"></span>简单<span class="_ _0"></span>的<span class="_ _0"></span>,<span class="_ _0"></span>跟<span class="_ _0"></span>着代<span class="_ _0"></span>码<span class="_ _0"></span>走一<span class="_ _0"></span>遍<span class="_ _0"></span>吧<span class="_ _0"></span>。</div><div class="t m0 x0 h4 y1b ff3 fs2 fc1 sc0 ls0 ws0">Java7/8 中的 <span class="_ _0"></span>HashMap 和 C<span class="_ _0"></span>oncurrentHashMap 全解<span class="_ _0"></span>析<span class="_ _2"> </span>https://javadoo<span class="_ _0"></span>p.com/post/ha<span class="_ _0"></span>shmap</div><div class="t m0 x0 h4 y1c ff3 fs2 fc1 sc0 ls0 ws0">第3页 共57页<span class="_ _3"> </span>2019/1/4 16:26</div></div><div class="pi" data-data='{"ctm":[1.568627,0.000000,0.000000,1.568627,0.000000,0.000000]}'></div></div>
<div id="pf4" class="pf w0 h0" data-page-no="4"><div class="pc pc4 w0 h0"><img class="bi x0 y0 w1 h1" alt="" src="https://csdnimg.cn/release/download_crawler_static/11906539/bg4.jpg"><div class="t m0 x8 h6 y3a ff4 fs4 fc1 sc0 ls0 ws0">pu<span class="_ _0"></span>bl<span class="_ _0"></span>ic<span class="_ _0"></span> V<span class="_ _0"></span> p<span class="_ _0"></span>ut<span class="_ _0"></span>(K<span class="_ _0"></span> k<span class="_ _0"></span>ey<span class="_ _0"></span>,<span class="_ _0"></span> V <span class="_ _0"></span>va<span class="_ _0"></span>lu<span class="_ _0"></span>e)<span class="_ _4"> </span>{</div><div class="t m0 x9 h7 y3b ff4 fs4 fc1 sc0 ls0 ws0">//<span class="_ _0"></span> <span class="ff3">当<span class="_ _0"></span>插入<span class="_ _0"></span>第一个<span class="_ _0"></span>元素<span class="_ _0"></span>的时<span class="_ _0"></span>候,<span class="_ _0"></span>需要先<span class="_ _0"></span>初始<span class="_ _0"></span>化数<span class="_ _0"></span>组大<span class="_ _0"></span>小</span></div><div class="t m0 x9 h6 y3c ff4 fs4 fc1 sc0 ls0 ws0">if<span class="_ _0"></span> (<span class="_ _0"></span>ta<span class="_ _0"></span>bl<span class="_ _0"></span>e <span class="_ _0"></span>==<span class="_ _0"></span> E<span class="_ _0"></span>M<span class="_ _0"></span>PT<span class="_ _0"></span>Y_<span class="_ _0"></span>TA<span class="_ _0"></span>BL<span class="_ _0"></span>E) <span class="_ _0"></span>{</div><div class="t m0 x8 h6 y3d ff4 fs4 fc1 sc0 ls0 ws0"> <span class="_ _0"></span> <span class="_ _0"></span> <span class="_ _0"></span> <span class="_ _0"></span>in<span class="_ _0"></span>fl<span class="_ _0"></span>at<span class="_ _0"></span>eT<span class="_ _0"></span>ab<span class="_ _0"></span>l<span class="_ _0"></span>e(<span class="_ _0"></span>thr<span class="_ _0"></span>es<span class="_ _0"></span>ho<span class="_ _0"></span>ld<span class="_ _0"></span>);</div><div class="t m0 x8 h6 y3e ff4 fs4 fc1 sc0 ls0 ws0"> <span class="_ _0"></span> <span class="_ _0"></span>}</div><div class="t m0 x9 h7 y3f ff4 fs4 fc1 sc0 ls0 ws0">//<span class="_ _0"></span> <span class="ff3">如<span class="_ _0"></span>果</span> <span class="_ _0"></span>ke<span class="_ _0"></span>y <span class="_ _0"></span><span class="ff3">为</span> <span class="_ _0"></span>nu<span class="_ _0"></span>ll<span class="_ _0"></span><span class="ff3">,感兴<span class="_ _0"></span>趣的<span class="_ _0"></span>可以<span class="_ _0"></span>往里<span class="_ _0"></span>看,最<span class="_ _0"></span>终会<span class="_ _0"></span>将这<span class="_ _0"></span>个</span> <span class="_ _0"></span>en<span class="_ _0"></span>tr<span class="_ _0"></span>y <span class="_ _0"></span><span class="ff3">放到<span class="_ _0"></span></span> t<span class="_ _0"></span>ab<span class="_ _0"></span>le<span class="_ _0"></span>[0<span class="_ _0"></span>] <span class="_ _0"></span><span class="ff3">中</span></div><div class="t m0 x9 h6 y40 ff4 fs4 fc1 sc0 ls0 ws0">if<span class="_ _0"></span> (<span class="_ _0"></span>ke<span class="_ _0"></span>y <span class="_ _0"></span>==<span class="_ _0"></span> n<span class="_ _0"></span>ul<span class="_ _0"></span>l<span class="_ _0"></span>)</div><div class="t m0 xa h6 y41 ff4 fs4 fc1 sc0 ls0 ws0">re<span class="_ _0"></span>tu<span class="_ _0"></span>rn <span class="_ _0"></span>pu<span class="_ _0"></span>tF<span class="_ _0"></span>or<span class="_ _0"></span>Nu<span class="_ _0"></span>ll<span class="_ _0"></span>Ke<span class="_ _0"></span>y(<span class="_ _0"></span>v<span class="_ _0"></span>al<span class="_ _0"></span>ue<span class="_ _0"></span>);</div><div class="t m0 x9 h7 y42 ff4 fs4 fc1 sc0 ls0 ws0">//<span class="_ _0"></span> 1<span class="_ _0"></span>. <span class="_ _0"></span><span class="ff3">求</span> <span class="_ _0"></span>ke<span class="_ _0"></span>y <span class="_ _0"></span><span class="ff3">的</span> <span class="_ _0"></span>ha<span class="_ _0"></span>sh<span class="_ _0"></span> <span class="ff3">值</span></div><div class="t m0 x9 h6 y43 ff4 fs4 fc1 sc0 ls0 ws0">in<span class="_ _0"></span>t <span class="_ _0"></span>ha<span class="_ _0"></span>sh<span class="_ _0"></span> =<span class="_ _0"></span> h<span class="_ _0"></span>as<span class="_ _0"></span>h<span class="_ _0"></span>(k<span class="_ _0"></span>ey<span class="_ _0"></span>);</div><div class="t m0 x9 h7 y44 ff4 fs4 fc1 sc0 ls0 ws0">//<span class="_ _0"></span> 2<span class="_ _0"></span>. <span class="_ _0"></span><span class="ff3">找到<span class="_ _0"></span>对应<span class="_ _0"></span>的数<span class="_ _0"></span>组下<span class="_ _0"></span>标</span></div><div class="t m0 x9 h6 y45 ff4 fs4 fc1 sc0 ls0 ws0">in<span class="_ _0"></span>t <span class="_ _0"></span>i <span class="_ _0"></span>= <span class="_ _0"></span>in<span class="_ _0"></span>de<span class="_ _0"></span>xF<span class="_ _0"></span>o<span class="_ _0"></span>r(<span class="_ _0"></span>ha<span class="_ _0"></span>sh<span class="_ _0"></span>, t<span class="_ _0"></span>ab<span class="_ _0"></span>le<span class="_ _0"></span>.l<span class="_ _0"></span>en<span class="_ _0"></span>gt<span class="_ _0"></span>h)<span class="_ _0"></span>;</div><div class="t m0 x9 h7 y46 ff4 fs4 fc1 sc0 ls0 ws0">//<span class="_ _0"></span> 3<span class="_ _0"></span>. <span class="_ _0"></span><span class="ff3">遍历<span class="_ _0"></span>一下<span class="_ _0"></span>对应<span class="_ _0"></span>下标<span class="_ _0"></span>处的链<span class="_ _0"></span>表,<span class="_ _0"></span>看是<span class="_ _0"></span>否有<span class="_ _0"></span>重复的<span class="_ _0"></span></span> k<span class="_ _0"></span>ey<span class="_ _0"></span> <span class="ff3">已<span class="_ _0"></span>经存在<span class="_ _0"></span>,</span></div><div class="t m0 x9 h7 y47 ff4 fs4 fc1 sc0 ls0 ws0">//<span class="_ _0"></span> <span class="_ _0"></span> <span class="_ _0"></span><span class="ff3">如果<span class="_ _0"></span>有,<span class="_ _0"></span>直接<span class="_ _0"></span>覆盖<span class="_ _0"></span>,</span>pu<span class="_ _0"></span>t <span class="_ _0"></span><span class="ff3">方法<span class="_ _0"></span>返回<span class="_ _0"></span>旧值<span class="_ _0"></span>就结束<span class="_ _0"></span>了</span></div><div class="t m0 x9 h6 y48 ff4 fs4 fc1 sc0 ls0 ws0">fo<span class="_ _0"></span>r <span class="_ _0"></span>(E<span class="_ _0"></span>nt<span class="_ _0"></span>ry<span class="_ _0"></span><K<span class="_ _0"></span>,V<span class="_ _0"></span>><span class="_ _0"></span> e<span class="_ _0"></span> =<span class="_ _0"></span> t<span class="_ _0"></span>abl<span class="_ _0"></span>e[<span class="_ _0"></span>i]<span class="_ _0"></span>; <span class="_ _0"></span>e <span class="_ _0"></span>!=<span class="_ _0"></span> n<span class="_ _0"></span>ul<span class="_ _0"></span>l<span class="_ _0"></span>; <span class="_ _0"></span>e <span class="_ _0"></span>= <span class="_ _0"></span>e.<span class="_ _0"></span>ne<span class="_ _0"></span>xt<span class="_ _0"></span>) <span class="_ _0"></span>{</div><div class="t m0 x8 h6 y49 ff4 fs4 fc1 sc0 ls0 ws0"> <span class="_ _0"></span> <span class="_ _0"></span> <span class="_ _0"></span> <span class="_ _0"></span>Ob<span class="_ _0"></span>je<span class="_ _0"></span>ct<span class="_ _0"></span> k<span class="_ _0"></span>;</div><div class="t m0 xa h6 y4a ff4 fs4 fc1 sc0 ls0 ws0">if<span class="_ _0"></span> (<span class="_ _0"></span>e.<span class="_ _0"></span>has<span class="_ _0"></span>h <span class="_ _0"></span>==<span class="_ _0"></span> h<span class="_ _0"></span>as<span class="_ _0"></span>h <span class="_ _0"></span>&&<span class="_ _0"></span> <span class="_ _0"></span>((<span class="_ _0"></span>k <span class="_ _0"></span>= <span class="_ _0"></span>e.<span class="_ _0"></span>ke<span class="_ _0"></span>y)<span class="_ _0"></span> =<span class="_ _0"></span>= <span class="_ _0"></span>ke<span class="_ _0"></span>y <span class="_ _0"></span>||<span class="_ _0"></span> k<span class="_ _0"></span>ey<span class="_ _0"></span>.e<span class="_ _0"></span>qu<span class="_ _0"></span>al<span class="_ _0"></span>s(<span class="_ _0"></span>k)<span class="_ _0"></span>)<span class="_ _0"></span>) <span class="_ _0"></span>{</div><div class="t m0 x8 h6 y4b ff4 fs4 fc1 sc0 ls0 ws0"> <span class="_ _0"></span> <span class="_ _0"></span> <span class="_ _0"></span> <span class="_ _0"></span> <span class="_ _0"></span> <span class="_ _0"></span>V <span class="_ _0"></span>ol<span class="_ _0"></span>dV<span class="_ _0"></span>a<span class="_ _0"></span>lu<span class="_ _0"></span>e =<span class="_ _0"></span> e<span class="_ _0"></span>.v<span class="_ _0"></span>al<span class="_ _0"></span>ue<span class="_ _0"></span>;</div><div class="t m0 x8 h6 y4c ff4 fs4 fc1 sc0 ls0 ws0"> <span class="_ _0"></span> <span class="_ _0"></span> <span class="_ _0"></span> <span class="_ _0"></span> <span class="_ _0"></span> <span class="_ _0"></span>e.<span class="_ _0"></span>va<span class="_ _0"></span>lu<span class="_ _0"></span>e<span class="_ _0"></span> =<span class="_ _0"></span> va<span class="_ _0"></span>lu<span class="_ _0"></span>e;</div><div class="t m0 x8 h6 y4d ff4 fs4 fc1 sc0 ls0 ws0"> <span class="_ _0"></span> <span class="_ _0"></span> <span class="_ _0"></span> <span class="_ _0"></span> <span class="_ _0"></span> <span class="_ _0"></span>e.<span class="_ _0"></span>re<span class="_ _0"></span>co<span class="_ _0"></span>r<span class="_ _0"></span>dA<span class="_ _0"></span>cce<span class="_ _0"></span>ss<span class="_ _0"></span>(t<span class="_ _0"></span>hi<span class="_ _0"></span>s)<span class="_ _0"></span>;</div><div class="t m0 xb h6 y4e ff4 fs4 fc1 sc0 ls0 ws0">re<span class="_ _0"></span>tu<span class="_ _0"></span>rn<span class="_ _0"></span> o<span class="_ _0"></span>ldV<span class="_ _0"></span>al<span class="_ _0"></span>ue<span class="_ _0"></span>;</div><div class="t m0 x8 h6 y4f ff4 fs4 fc1 sc0 ls0 ws0"> <span class="_ _0"></span> <span class="_ _0"></span> <span class="_ _0"></span> <span class="_ _0"></span>}</div><div class="t m0 x8 h6 y50 ff4 fs4 fc1 sc0 ls0 ws0"> <span class="_ _0"></span> <span class="_ _0"></span>}</div><div class="t m0 x8 h6 y51 ff4 fs4 fc1 sc0 ls0 ws0"> <span class="_ _0"></span> <span class="_ _0"></span>mo<span class="_ _0"></span>dC<span class="_ _0"></span>ou<span class="_ _0"></span>nt<span class="_ _0"></span>++<span class="_ _0"></span>;</div><div class="t m0 x9 h7 y52 ff4 fs4 fc1 sc0 ls0 ws0">//<span class="_ _0"></span> 4<span class="_ _0"></span>. <span class="_ _0"></span><span class="ff3">不存<span class="_ _0"></span>在重<span class="_ _0"></span>复的<span class="_ _0"></span></span> k<span class="_ _0"></span>ey<span class="_ _0"></span><span class="ff3">,将此<span class="_ _0"></span></span> e<span class="_ _0"></span>nt<span class="_ _0"></span>r<span class="_ _0"></span>y <span class="_ _0"></span><span class="ff3">添加到<span class="_ _0"></span>链表<span class="_ _0"></span>中,<span class="_ _0"></span>细节<span class="_ _0"></span>后面说</span></div><div class="t m0 x8 h6 y53 ff4 fs4 fc1 sc0 ls0 ws0"> <span class="_ _0"></span> <span class="_ _0"></span>ad<span class="_ _0"></span>dE<span class="_ _0"></span>nt<span class="_ _0"></span>ry<span class="_ _0"></span>(h<span class="_ _0"></span>as<span class="_ _0"></span>h,<span class="_ _0"></span> <span class="_ _0"></span>ke<span class="_ _0"></span>y, <span class="_ _0"></span>va<span class="_ _0"></span>lu<span class="_ _0"></span>e,<span class="_ _0"></span> i<span class="_ _0"></span>);</div><div class="t m0 x9 h6 y54 ff4 fs4 fc1 sc0 ls0 ws0">re<span class="_ _0"></span>tu<span class="_ _0"></span>rn<span class="_ _4"> </span>nul<span class="_ _0"></span>l;</div><div class="t m0 x8 h6 y55 ff4 fs4 fc1 sc0 ls0 ws0">}</div><div class="t m0 x4 h8 y56 ff2 fs5 fc1 sc0 ls0 ws0">数组<span class="_ _0"></span>初<span class="_ _0"></span>始化</div><div class="t m0 x4 h2 y57 ff1 fs0 fc1 sc0 ls0 ws0">在第<span class="_ _0"></span>一<span class="_ _0"></span>个<span class="_ _0"></span>元素<span class="_ _0"></span>插<span class="_ _0"></span>入<span class="_ _0"></span> H<span class="_ _0"></span>a<span class="_ _0"></span>sh<span class="_ _0"></span>M<span class="_ _0"></span>a<span class="_ _0"></span>p <span class="_ _0"></span>的<span class="_ _0"></span>时候<span class="_ _0"></span>做<span class="_ _0"></span>一<span class="_ _0"></span>次数<span class="_ _0"></span>组<span class="_ _0"></span>的<span class="_ _0"></span>初始<span class="_ _0"></span>化<span class="_ _0"></span>,<span class="_ _0"></span>就<span class="_ _0"></span>是先<span class="_ _0"></span>确<span class="_ _0"></span>定<span class="_ _0"></span>初<span class="_ _0"></span>始的<span class="_ _0"></span>数<span class="_ _0"></span>组<span class="_ _0"></span>大<span class="_ _0"></span>小,<span class="_ _0"></span>并<span class="_ _0"></span>计<span class="_ _0"></span>算<span class="_ _0"></span>数组<span class="_ _0"></span>扩<span class="_ _0"></span>容<span class="_ _0"></span>的阈</div><div class="t m0 x4 h2 y58 ff1 fs0 fc1 sc0 ls0 ws0">值。</div><div class="t m0 x0 h4 y1b ff3 fs2 fc1 sc0 ls0 ws0">Java7/8 中的 <span class="_ _0"></span>HashMap 和 C<span class="_ _0"></span>oncurrentHashMap 全解<span class="_ _0"></span>析<span class="_ _2"> </span>https://javadoo<span class="_ _0"></span>p.com/post/ha<span class="_ _0"></span>shmap</div><div class="t m0 x0 h4 y1c ff3 fs2 fc1 sc0 ls0 ws0">第4页 共57页<span class="_ _3"> </span>2019/1/4 16:26</div></div><div class="pi" data-data='{"ctm":[1.568627,0.000000,0.000000,1.568627,0.000000,0.000000]}'></div></div>
<div id="pf5" class="pf w0 h0" data-page-no="5"><div class="pc pc5 w0 h0"><img class="bi x0 y0 w1 h1" alt="" src="https://csdnimg.cn/release/download_crawler_static/11906539/bg5.jpg"><div class="t m0 x8 h6 y3a ff4 fs4 fc1 sc0 ls0 ws0">pr<span class="_ _0"></span>iv<span class="_ _0"></span>at<span class="_ _0"></span>e<span class="_ _4"> </span>void<span class="_ _4"> </span>inf<span class="_ _0"></span>la<span class="_ _0"></span>t<span class="_ _0"></span>eT<span class="_ _0"></span>ab<span class="_ _0"></span>le<span class="_ _0"></span>(i<span class="_ _0"></span>nt<span class="_ _0"></span> t<span class="_ _0"></span>oS<span class="_ _0"></span>iz<span class="_ _0"></span>e)<span class="_ _4"> </span>{</div><div class="t m0 x9 h7 y3b ff4 fs4 fc1 sc0 ls0 ws0">//<span class="_ _0"></span> <span class="ff3">保<span class="_ _0"></span>证数<span class="_ _0"></span>组大小<span class="_ _0"></span>一定<span class="_ _0"></span>是</span> <span class="_ _0"></span>2 <span class="_ _0"></span><span class="ff3">的</span> <span class="_ _0"></span>n <span class="_ _0"></span><span class="ff3">次方<span class="_ _0"></span>。</span></div><div class="t m0 x9 h7 y3c ff4 fs4 fc1 sc0 ls0 ws0">//<span class="_ _0"></span> <span class="ff3">比<span class="_ _0"></span>如这<span class="_ _0"></span>样初始<span class="_ _0"></span>化:<span class="_ _0"></span></span>n<span class="_ _0"></span>ew<span class="_ _0"></span> H<span class="_ _0"></span>ash<span class="_ _0"></span>Ma<span class="_ _0"></span>p(<span class="_ _0"></span>20<span class="_ _0"></span>)<span class="ff3">,<span class="_ _0"></span>那么<span class="_ _0"></span>处理<span class="_ _0"></span>成初<span class="_ _0"></span>始数组<span class="_ _0"></span>大小<span class="_ _0"></span>是</span> <span class="_ _0"></span>32</div><div class="t m0 x9 h6 y3d ff4 fs4 fc1 sc0 ls0 ws0">in<span class="_ _0"></span>t <span class="_ _0"></span>ca<span class="_ _0"></span>pa<span class="_ _0"></span>ci<span class="_ _0"></span>ty<span class="_ _0"></span> =<span class="_ _0"></span> <span class="_ _0"></span>ro<span class="_ _0"></span>un<span class="_ _0"></span>dU<span class="_ _0"></span>pTo<span class="_ _0"></span>Po<span class="_ _0"></span>we<span class="_ _0"></span>rO<span class="_ _0"></span>f2<span class="_ _0"></span>(t<span class="_ _0"></span>oS<span class="_ _0"></span>iz<span class="_ _0"></span>e<span class="_ _0"></span>);</div><div class="t m0 x9 h7 y3e ff4 fs4 fc1 sc0 ls0 ws0">//<span class="_ _0"></span> <span class="ff3">计<span class="_ _0"></span>算扩<span class="_ _0"></span>容阈值<span class="_ _0"></span>:</span>c<span class="_ _0"></span>ap<span class="_ _0"></span>ac<span class="_ _0"></span>it<span class="_ _0"></span>y <span class="_ _0"></span>* <span class="_ _0"></span>l<span class="_ _0"></span>oa<span class="_ _0"></span>dF<span class="_ _0"></span>ac<span class="_ _0"></span>to<span class="_ _0"></span>r</div><div class="t m0 x8 h6 y3f ff4 fs4 fc1 sc0 ls0 ws0"> <span class="_ _0"></span> <span class="_ _0"></span>th<span class="_ _0"></span>re<span class="_ _0"></span>sh<span class="_ _0"></span>ol<span class="_ _0"></span>d <span class="_ _0"></span>= <span class="_ _0"></span>(i<span class="_ _0"></span>n<span class="_ _0"></span>t)<span class="_ _0"></span> Ma<span class="_ _0"></span>th<span class="_ _0"></span>.m<span class="_ _0"></span>in<span class="_ _0"></span>(c<span class="_ _0"></span>ap<span class="_ _0"></span>ac<span class="_ _0"></span>it<span class="_ _0"></span>y <span class="_ _0"></span>* <span class="_ _0"></span>l<span class="_ _0"></span>oa<span class="_ _0"></span>dF<span class="_ _0"></span>ac<span class="_ _0"></span>to<span class="_ _0"></span>r,<span class="_ _0"></span> M<span class="_ _0"></span>AX<span class="_ _0"></span>IM<span class="_ _0"></span>UM<span class="_ _0"></span>_C<span class="_ _0"></span>APA<span class="_ _0"></span>C<span class="_ _0"></span>IT<span class="_ _0"></span>Y <span class="_ _0"></span>+ <span class="_ _0"></span>1)<span class="_ _0"></span>;</div><div class="t m0 x9 h7 y40 ff4 fs4 fc1 sc0 ls0 ws0">//<span class="_ _0"></span> <span class="ff3">算<span class="_ _0"></span>是初<span class="_ _0"></span>始化数<span class="_ _0"></span>组吧</span></div><div class="t m0 x8 h6 y41 ff4 fs4 fc1 sc0 ls0 ws0"> <span class="_ _0"></span> <span class="_ _0"></span>ta<span class="_ _0"></span>bl<span class="_ _0"></span>e <span class="_ _0"></span>= <span class="_ _0"></span>ne<span class="_ _0"></span>w <span class="_ _0"></span>En<span class="_ _0"></span>t<span class="_ _0"></span>ry<span class="_ _0"></span>[ca<span class="_ _0"></span>pa<span class="_ _0"></span>ci<span class="_ _0"></span>ty<span class="_ _0"></span>];</div><div class="t m0 x8 h6 y42 ff4 fs4 fc1 sc0 ls0 ws0"> <span class="_ _0"></span> <span class="_ _0"></span>in<span class="_ _0"></span>it<span class="_ _0"></span>Ha<span class="_ _0"></span>sh<span class="_ _0"></span>Se<span class="_ _0"></span>ed<span class="_ _0"></span>As<span class="_ _0"></span>N<span class="_ _0"></span>ee<span class="_ _0"></span>ded<span class="_ _0"></span>(c<span class="_ _0"></span>ap<span class="_ _0"></span>ac<span class="_ _0"></span>it<span class="_ _0"></span>y)<span class="_ _0"></span>; <span class="_ _0"></span>//<span class="_ _0"></span>ig<span class="_ _0"></span>no<span class="_ _0"></span>r<span class="_ _0"></span>e</div><div class="t m0 x8 h6 y43 ff4 fs4 fc1 sc0 ls0 ws0">}</div><div class="t m0 x4 h2 y59 ff1 fs0 fc1 sc0 ls0 ws0">这里<span class="_ _0"></span>有<span class="_ _0"></span>一<span class="_ _0"></span>个将<span class="_ _0"></span>数<span class="_ _0"></span>组<span class="_ _0"></span>大<span class="_ _0"></span>小保<span class="_ _0"></span>持<span class="_ _0"></span>为 <span class="_ _0"></span>2<span class="_ _0"></span> 的<span class="_ _0"></span> <span class="_ _0"></span>n<span class="_ _0"></span> 次<span class="_ _0"></span>方<span class="_ _0"></span>的<span class="_ _0"></span>做<span class="_ _0"></span>法,<span class="_ _0"></span>J<span class="_ _0"></span>av<span class="_ _0"></span>a<span class="_ _0"></span>7 <span class="_ _0"></span>和<span class="_ _0"></span> J<span class="_ _0"></span>a<span class="_ _0"></span>va<span class="_ _0"></span>8<span class="_ _0"></span> 的<span class="_ _0"></span> <span class="_ _0"></span>Ha<span class="_ _0"></span>s<span class="_ _0"></span>h<span class="_ _0"></span>M<span class="_ _0"></span>ap<span class="_ _0"></span> 和<span class="_ _0"></span> <span class="_ _0"></span>Co<span class="_ _0"></span>n<span class="_ _0"></span>cu<span class="_ _0"></span>r<span class="_ _0"></span>r<span class="_ _0"></span>en<span class="_ _0"></span>t<span class="_ _0"></span>Ha<span class="_ _0"></span>s<span class="_ _0"></span>hM<span class="_ _0"></span>a<span class="_ _0"></span>p<span class="_ _0"></span> 都</div><div class="t m0 x4 h2 y5a ff1 fs0 fc1 sc0 ls0 ws0">有相<span class="_ _0"></span>应<span class="_ _0"></span>的<span class="_ _0"></span>要求<span class="_ _0"></span>,<span class="_ _0"></span>只<span class="_ _0"></span>不<span class="_ _0"></span>过实<span class="_ _0"></span>现<span class="_ _0"></span>的代<span class="_ _0"></span>码<span class="_ _0"></span>稍<span class="_ _0"></span>微有<span class="_ _0"></span>些<span class="_ _0"></span>不<span class="_ _0"></span>同<span class="_ _0"></span>,后<span class="_ _0"></span>面<span class="_ _0"></span>再<span class="_ _0"></span>看<span class="_ _0"></span>到的<span class="_ _0"></span>时<span class="_ _0"></span>候<span class="_ _0"></span>就<span class="_ _0"></span>知道<span class="_ _0"></span>了<span class="_ _0"></span>。</div><div class="t m0 x4 h8 y5b ff2 fs5 fc1 sc0 ls0 ws0">计算<span class="_ _0"></span>具<span class="_ _0"></span>体数<span class="_ _0"></span>组<span class="_ _0"></span>位置</div><div class="t m0 x4 h2 y5c ff1 fs0 fc1 sc0 ls0 ws0">这个<span class="_ _0"></span>简<span class="_ _0"></span>单<span class="_ _0"></span>,我<span class="_ _0"></span>们<span class="_ _0"></span>自<span class="_ _0"></span>己<span class="_ _0"></span>也能<span class="_ _0"></span> <span class="_ _0"></span>YY<span class="_ _0"></span> 一<span class="_ _0"></span>个<span class="_ _0"></span>:<span class="_ _0"></span>使<span class="_ _0"></span>用 <span class="_ _0"></span>k<span class="_ _0"></span>ey<span class="_ _0"></span> <span class="_ _0"></span>的<span class="_ _0"></span> h<span class="_ _0"></span>a<span class="_ _0"></span>sh<span class="_ _0"></span> <span class="_ _0"></span>值对<span class="_ _0"></span>数<span class="_ _0"></span>组<span class="_ _0"></span>长度<span class="_ _0"></span>进<span class="_ _0"></span>行<span class="_ _0"></span>取模<span class="_ _0"></span>就<span class="_ _0"></span>可<span class="_ _0"></span>以<span class="_ _0"></span>了。</div><div class="t m0 x8 h6 y5d ff4 fs4 fc1 sc0 ls0 ws0">st<span class="_ _0"></span>at<span class="_ _0"></span>ic<span class="_ _4"> </span>int<span class="_ _4"> </span>ind<span class="_ _0"></span>ex<span class="_ _0"></span>Fo<span class="_ _0"></span>r<span class="_ _0"></span>(i<span class="_ _0"></span>nt<span class="_ _0"></span> h<span class="_ _0"></span>as<span class="_ _0"></span>h,<span class="_ _0"></span> i<span class="_ _0"></span>nt<span class="_ _0"></span> l<span class="_ _0"></span>en<span class="_ _0"></span>gt<span class="_ _0"></span>h)<span class="_ _4"> </span>{</div><div class="t m0 x9 h6 y5e ff4 fs4 fc1 sc0 ls0 ws0">//<span class="_ _0"></span> a<span class="_ _0"></span>ss<span class="_ _0"></span>er<span class="_ _0"></span>t <span class="_ _0"></span>In<span class="_ _0"></span>te<span class="_ _0"></span>g<span class="_ _0"></span>er<span class="_ _0"></span>.b<span class="_ _0"></span>it<span class="_ _0"></span>Cou<span class="_ _0"></span>nt<span class="_ _0"></span>(l<span class="_ _0"></span>en<span class="_ _0"></span>gt<span class="_ _0"></span>h)<span class="_ _0"></span> =<span class="_ _0"></span>= <span class="_ _0"></span>1<span class="_ _0"></span> :<span class="_ _0"></span> "<span class="_ _0"></span>le<span class="_ _0"></span>ng<span class="_ _0"></span>th<span class="_ _0"></span> m<span class="_ _0"></span>us<span class="_ _0"></span>t <span class="_ _0"></span>be<span class="_ _0"></span> a<span class="_ _0"></span> n<span class="_ _0"></span>on<span class="_ _0"></span>-z<span class="_ _0"></span>er<span class="_ _0"></span>o <span class="_ _0"></span>po<span class="_ _0"></span>we<span class="_ _0"></span>r<span class="_ _0"></span> o<span class="_ _0"></span>f <span class="_ _0"></span>2";</div><div class="t m0 x9 h6 y5f ff4 fs4 fc1 sc0 ls0 ws0">re<span class="_ _0"></span>tu<span class="_ _0"></span>rn<span class="_ _0"></span> h<span class="_ _0"></span>as<span class="_ _0"></span>h <span class="_ _0"></span>& <span class="_ _0"></span>(<span class="_ _0"></span>le<span class="_ _0"></span>ng<span class="_ _0"></span>th<span class="_ _0"></span>-1<span class="_ _0"></span>);</div><div class="t m0 x8 h6 y60 ff4 fs4 fc1 sc0 ls0 ws0">}</div><div class="t m0 x4 h2 y61 ff1 fs0 fc1 sc0 ls0 ws0">这个<span class="_ _0"></span>方<span class="_ _0"></span>法<span class="_ _0"></span>很简<span class="_ _0"></span>单<span class="_ _0"></span>,<span class="_ _0"></span>简<span class="_ _0"></span>单说<span class="_ _0"></span>就<span class="_ _0"></span>是取<span class="_ _0"></span> <span class="_ _0"></span>h<span class="_ _0"></span>as<span class="_ _0"></span>h<span class="_ _0"></span> 值<span class="_ _0"></span>的<span class="_ _0"></span>低 <span class="_ _0"></span>n<span class="_ _0"></span> <span class="_ _0"></span>位<span class="_ _0"></span>。如<span class="_ _0"></span>在<span class="_ _0"></span>数<span class="_ _0"></span>组<span class="_ _0"></span>长度<span class="_ _0"></span>为<span class="_ _0"></span> 3<span class="_ _0"></span>2<span class="_ _0"></span> 的<span class="_ _0"></span>时<span class="_ _0"></span>候<span class="_ _0"></span>,其<span class="_ _0"></span>实<span class="_ _0"></span>取<span class="_ _0"></span>的就<span class="_ _0"></span>是<span class="_ _0"></span> <span class="_ _0"></span>k<span class="_ _0"></span>ey<span class="_ _0"></span> <span class="_ _0"></span>的 <span class="_ _0"></span>h<span class="_ _0"></span>as<span class="_ _0"></span>h</div><div class="t m0 x4 h2 y62 ff1 fs0 fc1 sc0 ls0 ws0">值的<span class="_ _0"></span>低<span class="_ _0"></span> 5<span class="_ _0"></span> <span class="_ _0"></span>位<span class="_ _0"></span>,作<span class="_ _0"></span>为<span class="_ _0"></span>它<span class="_ _0"></span>在数<span class="_ _0"></span>组<span class="_ _0"></span>中<span class="_ _0"></span>的下<span class="_ _0"></span>标<span class="_ _0"></span>位<span class="_ _0"></span>置。</div><div class="t m0 x4 h8 y63 ff2 fs5 fc1 sc0 ls0 ws0">添加<span class="_ _0"></span>节<span class="_ _0"></span>点到<span class="_ _0"></span>链<span class="_ _0"></span>表中</div><div class="t m0 x4 h2 y64 ff1 fs0 fc1 sc0 ls0 ws0">找到<span class="_ _0"></span>数<span class="_ _0"></span>组<span class="_ _0"></span>下标<span class="_ _0"></span>后<span class="_ _0"></span>,<span class="_ _0"></span>会<span class="_ _0"></span>先进<span class="_ _0"></span>行<span class="_ _0"></span> k<span class="_ _0"></span>e<span class="_ _0"></span>y <span class="_ _0"></span>判<span class="_ _0"></span>重<span class="_ _0"></span>,<span class="_ _0"></span>如<span class="_ _0"></span>果没<span class="_ _0"></span>有<span class="_ _0"></span>重<span class="_ _0"></span>复,<span class="_ _0"></span>就<span class="_ _0"></span>准<span class="_ _0"></span>备将<span class="_ _0"></span>新<span class="_ _0"></span>值<span class="_ _0"></span>放入<span class="_ _0"></span>到<span class="_ _0"></span>链<span class="_ _0"></span>表的<span class="_ _0"></span><span class="ff2">表<span class="_ _0"></span>头<span class="_ _0"></span></span>。</div><div class="t m0 x0 h4 y1b ff3 fs2 fc1 sc0 ls0 ws0">Java7/8 中的 <span class="_ _0"></span>HashMap 和 C<span class="_ _0"></span>oncurrentHashMap 全解<span class="_ _0"></span>析<span class="_ _2"> </span>https://javadoo<span class="_ _0"></span>p.com/post/ha<span class="_ _0"></span>shmap</div><div class="t m0 x0 h4 y1c ff3 fs2 fc1 sc0 ls0 ws0">第5页 共57页<span class="_ _3"> </span>2019/1/4 16:26</div></div><div class="pi" data-data='{"ctm":[1.568627,0.000000,0.000000,1.568627,0.000000,0.000000]}'></div></div>