1、引出问题
在前面讲解HashMap 的源码实现时,有如下几点:
①、初始容量为 1<<4,也就是24 = 16
②、负载因子是0.75,当存入HashMap的元素占比超过整个容量的75%时,进行扩容,而且在不超过int类型的范围时,进行2次幂的扩展(指长度扩为原来2倍)
扩大一倍
③、新添加一个元素时,计算这个元素在HashMap中的位置,也就是本篇文章的主角 哈希运算。分为三步:
第一步:取 hashCode 值: key.hashCode()
第二步:高位参与运算:h>>>16
第三步:取模运算:(n-1) & hash
1 stati