Java8 HashMap 扩容之后旧元素存放位置
Java8 HashMap 扩容之后旧元素存放位置
根据源码可看出,java 在扩容的时候会新建一个新的 Node<K,V>[] 来存放扩容之后的值,并将旧有的Node数组置空;
至于旧有值移动到新的节点的时候存放于哪个节点,Java 是根据(e.hash & oldCap) == 0 来判断的:
① 等于0时,则将该节点放到新数组时的索引位置等于其在旧数组时的索引位置,记为低位区链表lo开头-low;
② 不等于0时,则将该节点放到新数组时的索引位置等于其在旧数组时的索引位置再.
原创
2021-03-24 10:23:42 ·
4591 阅读 ·
0 评论