int value = 5381;
for (int i = 0; i < item.length(); i++) {
value = value * 33 + item.charAt(i);
}
value &= 0x7fffffff;
value %= size;
这是Bernstein的哈希码。除了最后两行之外,我都懂。它们做什么?它们还会导致Java编译器出错,因此它们显然不是有效的代码。如果不使用这种方式,另外如何表示呢?
其实我不太在意它们做什么,只要它们能工作就好啦 :P