HashMap的put底层原理

1:首先,将map中的key取出来计算出他的hashcode

2:将改hashcode>>>16右移16位得出后再将这个右移后的值与原本的hashcode经行异或运算(为了将key的高16位和低16位都参与到了hash值的计算中,从而减少哈希冲突的可能性,提高HashMap的性能。)

3:上一步异或运算后得到的新的HashCode值再与(n-1)按位与运算后得到的值就是key所在的索引位置。(为了保证key的索引位置在HashMap的容量范围内,同时也可以减少哈希冲突的可能性,提高HashMap的性能。)

你可能感兴趣的:(哈希算法,java,算法)