首先要说的是hashmap的底层数据结构是数组+链表的结构。hashmap中有一个entry内部类,内部类有几个属性:key,value,hash,next。
hashmap中的数组其实也就是entry数组。
hashmap的初始容量是16,如果赋值初始容量的话,也是会自动变成2的幂这种大小的。
为什么需要时2的幂?这是运算的简便,为了使按位与和取模运算结果一致。
resize就是将容量扩大两倍。同时还要将之前的值重新放到新的数组和链表的结构中
本文深入探讨了HashMap的数据结构,包括其数组+链表的形式,并解析了为何初始容量为16且必须为2的幂次方的原因。同时介绍了扩容机制及其带来的数据重组过程。
首先要说的是hashmap的底层数据结构是数组+链表的结构。hashmap中有一个entry内部类,内部类有几个属性:key,value,hash,next。
hashmap中的数组其实也就是entry数组。
hashmap的初始容量是16,如果赋值初始容量的话,也是会自动变成2的幂这种大小的。
为什么需要时2的幂?这是运算的简便,为了使按位与和取模运算结果一致。
resize就是将容量扩大两倍。同时还要将之前的值重新放到新的数组和链表的结构中

被折叠的 条评论
为什么被折叠?