Java8中HashMap扩容之后,旧元素存放在哪儿呢?
下文笔者讲述HashMapk扩容之后,原来的元素存放位置简介说明,如下所示
HashMap扩容时 会创建一个新Node<K,V>[],用于存放扩容之后的值 并旧Node数组(其大小记作n)置空 至于旧值移动到新的节点的时候, 存放于哪个节点是根据(e.hash & oldCap) == 0做相应的判断 1.当等于0时,则将其索引位置h不变 2.当不等于0时,则将该节点在新数组的索引位置 等于原索引位置加上旧数组长度
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。