Java常用哈希算法总结【经典实例】

  

本文实例讲述了Java常用哈希算法。分享给大家供大家参考,具体如下:

     /* *   *哈希算法大全& lt; br>   *推荐使用FNV1算法   * @algorithm没有   * @author Goodzzp 2006-11-20   * @lastEdit Goodzzp 2006-11-20   * @editDetail创建   */公开课HashAlgorithms   {/* *//* *   *加法哈希   * @param关键字符串   * @param '一个质数   * @return散列结果   */公共静态int additiveHash(字符串键,int ')   {   int哈希,我;   (散列=key.length(),我=0;我& lt;key.length ();我+ +)   散列+=key.charAt(我);   返回(散列% ');   }/* *//* *   *旋转散列   * @param关键输入字符串   * @param '质数   * @return散列值   */公共静态int rotatingHash(字符串键,int ')   {   int哈希,我;   (散列=key.length(),我=0;i祝辞;10)^ (hash>在20));   }//替代://使用:散列=(散列^ (hash>祝辞;10)^ (hash>在20)),面具;//替代:哈希%=';/* *//* *   *掩码值,随便找一个值,最好是质数   */静态int M_MASK=0 x8765fed1;/* *//* *   *一次一个散列   * @param关键输入字符串   * @return输出哈希值   */公共静态int oneByOneHash (String键)   {   int哈希,我;   (散列=0,我=0;i祝辞;3);   如果((k& 0 x01)==0)散列^=选项卡(i + 0);   如果((k& 0 x02)==0)散列^=选项卡(i + 1);   如果((k& 0 x04)==0)散列^=选项卡(i + 2);   如果((k&()==0)散列^=选项卡(i + 3);   如果((k& 0 x10)==0)散列^=选项卡(i + 4);   如果((k& 0 x20)==0)散列^=选项卡(i + 5);   如果((k& 0 x40)==0)散列^=选项卡(i + 6);   如果((k& 0 x80)==0)散列^=选项卡(i + 7);   }   返回(散列,面具);   }/* *//* *   * Zobrist哈希   */公共静态int zobrist (char[]键,int面具,int[][]选项卡)   {   int哈希,我;   (散列=键。长度,我=0;iJava常用哈希算法总结【经典实例】