[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[jfriends-ml 11752] Re: 本日の議事録
高橋(智)です。
下の hashCode()は java.lang.Stringクラスの実装です。
"TAKAHASHI, Tomohiro" wrote:
snip
> JDK1.0.2の頃はどうだったか忘れましたが、JDK1.1.8では以下のように
> 最初の16byteだけというわけでは無さそうです。16byte以上でも衝突する
> 可能性は"幾分か"高いと思われます。
>
> [JDK1.1.8]
> -----------------------------------------------------
> public int hashCode() {
> int h = 0;
> int off = offset;
> char val[] = value;
> int len = count;
>
> if (len < 16) {
> for (int i = len ; i > 0; i--) {
> h = (h * 37) + val[off++];
> }
> }
> else {
> // only sample some characters
> int skip = len / 8;
> for (int i = len ; i > 0; i -= skip, off += skip) {
> h = (h * 39) + val[off];
> }
> }
> return h;
> }
> -----------------------------------------------------
snip
--
高橋智宏
Java読書会( http://www.javareading.com/bof/ )