How to calculate the hash code of a string by hand?

后端 未结 3 1227
暖寄归人
暖寄归人 2021-02-02 04:44

I was wondering how to calculate the hash code for a given string by hand. I understand that in Java, you can do something like:

String me = \"What you say what          


        
3条回答
  •  遥遥无期
    2021-02-02 05:10

    Take a look at the source code of java.lang.String.

    /**
     * Returns a hash code for this string. The hash code for a
     * String object is computed as
     * 
     * s[0]*31^(n-1) + s[1]*31^(n-2) + ... + s[n-1]
     * 
    * using int arithmetic, where s[i] is the * ith character of the string, n is the length of * the string, and ^ indicates exponentiation. * (The hash value of the empty string is zero.) * * @return a hash code value for this object. */ public int hashCode() { int h = hash; int len = count; if (h == 0 && len > 0) { int off = offset; char val[] = value; for (int i = 0; i < len; i++) { h = 31*h + val[off++]; } hash = h; } return h; }

提交回复
热议问题