哈希算法研究
一、Java的哈希算法
public static int JavaHash(string key)
{
int hashCode = 0;
for (int i = 0; i < key.Length; i++)
{
hashCode = 31 * hashCode + key[i];
}
return hashCode;
}
{
int hashCode = 0;
for (int i = 0; i < key.Length; i++)
{
hashCode = 31 * hashCode + key[i];
}
return hashCode;
}
转换为数学公式
h(m) = h-1 p + m (这里p = 31,h0 = 0,m从key的字符里顺序取值)
转换为
|n|
h(m) = ( S m i p (i-1) ) + h0pn 其中h0是hashCode的初始值,n是字符长度,m是顺序字符值,p是常量
i=1
参考文章:
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步