hashmap相关的问题
- hashmap源码 https://blog.csdn.net/ooo123lll/article/details/81103234#335-get
- hashmap扩容、为什么是2n(2的n次方)扩容 https://www.cnblogs.com/williamjie/p/9358291.html
扩容或者初始化容量时,都是以2的n次方扩容,这主要原因是,hashmap定位key的下标的机制决定的。根据源码:
public V put(K key, V value) {
if (key == null)
return putForNullKey(value);
// 若“key不为null”,则计算该key的哈希值,然后将其添加到该哈希值对应的链表中。
int hash = hash(key.hashCode()