HashMap底层详解-002-hash算法长度的秘密

Posted JavaWeb架构师

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了HashMap底层详解-002-hash算法长度的秘密相关的知识,希望对你有一定的参考价值。

第二天,小粉粉和小灰灰又遇见了……



HashMap底层详解-002-hash算法、长度的秘密


HashMap底层详解-002-hash算法、长度的秘密


HashMap底层详解-002-hash算法、长度的秘密


HashMap底层详解-002-hash算法、长度的秘密


HashMap底层详解-002-hash算法、长度的秘密

之前咱们说过,有一个hash方法,用于计算元素的下标值。


HashMap底层详解-002-hash算法、长度的秘密


在hash方法内部,我们通过key的hashCode值与HashMap的长度做某种运算,可以得到最后的index值。

HashMap底层详解-002-hash算法、长度的秘密

HashMap底层详解-002-hash算法、长度的秘密


HashMap底层详解-002-hash算法、长度的秘密

1.对hash值进行调整

HashMap底层详解-002-hash算法、长度的秘密


2.进行与运算

HashMap底层详解-002-hash算法、长度的秘密


我们知道 n-1 的二进制值是 1111,它与任何数进行与运算,结果都是那个数的最后四位(<=15)。

HashMap底层详解-002-hash算法、长度的秘密

HashMap底层详解-002-hash算法、长度的秘密

HashMap底层详解-002-hash算法、长度的秘密

HashMap底层详解-002-hash算法、长度的秘密

HashMap底层详解-002-hash算法、长度的秘密

HashMap底层详解-002-hash算法、长度的秘密









2.简书:http://www.jianshu.com/u/53b3f4658edc
3.CSDN:http://blog.csdn.net/qq_33605778?viewmode=contents


视频教程












JavaWeb架构师







点击阅读原文,支持作者!


以上是关于HashMap底层详解-002-hash算法长度的秘密的主要内容,如果未能解决你的问题,请参考以下文章

Java SE HashMap的底层实现

HashMap底层实现原理/HashMap与HashTable区别/HashMap与HashSet区别

理解HashMap底层数据结构

73介绍下 HashMap 的底层数据结构

HashMap原理剖析

LRU算法实现,HashMap与LinkedHashMap源码的部分总结