为什么Java使用(hash & 0x7FFFFFFF) % tab.length来决定一个键的索引?

9 浏览
0 Comments

为什么Java使用(hash & 0x7FFFFFFF) % tab.length来决定一个键的索引?

通过下面的链接,我了解到Java使用(hash & 0x7FFFFFFF) % tab.length来决定将{key, value}放在数组的哪个槽中。

http://grepcode.com/file/repository.grepcode.com/java/root/jdk/openjdk/7-b147/java/util/Hashtable.java#Hashtable.put%28java.lang.Object%2Cjava.lang.Object%29

我的问题是为什么Java首先要执行hash & 0x7FFFFFFF操作?有特定目的吗?

0