美文网首页
谈谈HashMap中的hash()方法

谈谈HashMap中的hash()方法

作者: lenny611 | 来源:发表于2019-08-13 21:17 被阅读0次

    先来看看jdk1.8源码:


    jdk1.8源码.png

    jdk1.7源码:


    jdk1.7源码..png

    简单来说,不管是jdk1.8无符号右移16位再异或,还是jdk1.7对 hashCode 分别无符号右移 (>>>) 7 位和 4 位,再与自身进行异或(^)处理,都是为了降低hash冲突的概率,其实说白了,这个hash就是HashMap的扰动函数,而扰动函数的目的就是为了降低冲突。而且hash的值也与table数组的下标相关,具体可以再看源码

    相关文章

      网友评论

          本文标题:谈谈HashMap中的hash()方法

          本文链接:https://www.haomeiwen.com/subject/jckijctx.html