首先要说的是hashmap的底层数据结构是数组+链表的结构。hashmap中有一个entry内部类,内部类有几个属性:key,value,hash,next。
hashmap中的数组其实也就是entry数组。
hashmap的初始容量是16,如果赋值初始容量的话,也是会自动变成2的幂这种大小的。
为什么需要时2的幂?这是运算的简便,为了使按位与和取模运算结果一致。
resize就是将容量扩大两倍。同时还要将之前的值重新放到新的数组和链表的结构中
首先要说的是hashmap的底层数据结构是数组+链表的结构。hashmap中有一个entry内部类,内部类有几个属性:key,value,hash,next。
hashmap中的数组其实也就是entry数组。
hashmap的初始容量是16,如果赋值初始容量的话,也是会自动变成2的幂这种大小的。
为什么需要时2的幂?这是运算的简便,为了使按位与和取模运算结果一致。
resize就是将容量扩大两倍。同时还要将之前的值重新放到新的数组和链表的结构中