gpt4 book ai didi

java - 哈希码 这是什么?

转载 作者:塔克拉玛干 更新时间:2023-11-01 21:48:13 26 4
gpt4 key购买 nike

int value = 5381;

for (int i = 0; i < item.length(); i++) {
value = value * 33 + item.charAt(i);
}

value &= 0x7fffffff;
value %= size;

这是 Bernstein 的哈希码。除了最后两行,我得到了一切。他们在做什么?它们还会在 Java 编译器中产生错误,因此它们显然不是有效代码。他们还能如何代表?

我几乎不在乎他们做什么,只要他们能工作就好 :P

最佳答案

按位和&的目的是将所有的值移动到一个正整数范围内。这可能比简单的绝对值操作更好地保留了前一个操作创建的均匀分布。此外,正如@yshavit 在评论中指出的那样,摆脱负号的一般原因是 value 最终可能会用作某种索引。

% 的目的是使散列码适合有限大小的空间。

关于java - 哈希码 这是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15776752/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com