java吧 关注:1,217,949贴子:12,667,550
  • 1回复贴,共1

【求助】ConcurrentHashMap 扩容问题。。。

取消只看楼主收藏回复

ConcurrentHashMap扩容时,会把旧桶内的所有元素只分成了2份,但是旧key在新table里,不可能只对应2种槽位的,这样新table 按key值hash,就可能找不到,这种情况这么解决。。。


IP属地:上海1楼2023-09-10 19:38回复
    举个例子
    table长度=8
    key=a,在3号槽位
    key=b,在3号槽位
    key=c,在3号槽位
    key=d,在3号槽位
    key=e,在3号槽位
    但是扩容后,长度为16
    key=a,在2号槽位
    key=b,在5号槽位
    key=c,在7号槽位
    key=d,在8号槽位
    key=e,在12号槽位
    这种情况这么解决,jdk只把所有key只分成2种槽位,但是不可能所有key对应新长度,只存在2种槽位的,这个要这么解决。。。


    IP属地:上海2楼2023-09-10 20:00
    收起回复