2012-02-28 6 views
2

私のコードに文字列が入っていて、何らかの目的のためにハッシュコードを取っていますが、これらのハッシュコードの範囲が不思議でした。ハッシュコードの範囲は何ですか?文字列の場合のハッシュコードの範囲

+2

hashCodesの範囲はInteger.MIN_VALUE〜Integer.MAX_VALUEです。はい、ほとんどの文字列hascodesが複製されます。ピジョンホールの原理。 – st0le

答えて

2

hashCodeの範囲は、intの範囲です。任意の所望のhashCode()については、hashCodeStringがある。

0

は、それは常にあなたの文字列のためのいくつかの値を持つことになります

public int hashCode() { 
    int h = hash; 
    if (h == 0) { 
     int off = offset; 
     char val[] = value; 
     int len = count; 

      for (int i = 0; i < len; i++) { 
       h = 31*h + val[off++]; 
      } 
      hash = h; 
     } 
     return h; 
    } 

JavaでStringクラスは次のように定義されているためhashCode方法は... ...だから、私はドン; tはあなたを思うだろう、これまでハッシュコードがなくなった...

関連する問題