java源码是如何生成哈希值的?
又是使用何种方法构造哈希表的
构造哈希表的方法有
1.数组+散列函数
2.分离链表+散列函数(分离链表在结构上和邻接链表基本一致但是用的地方不一样一个用在散列表一个用在图中)
3.
String 类的hasCode方法的定义:
使用以下的函数来确定string类的原因是 string类是一个不变的类,如果string类被改变了,需要将哈希值进行重置,相同的字符串的哈希值是相同的。
31结合各个元素的ASCII值计算String类型的数据的哈希值。a的ASCII码值为97。
/**
* Returns a hash code for this string. The hash code for a
* {@code String} object is computed as
* <blockquote><pre>
* s[0]*31^(n-1)