Hashcode的类型为int
,因此它可以是负数和正数。
但是HashMap
使用哈希码来确定表中哪个索引放入键+值,比如,
hashcode / size_of_table = table_index
。
但HashMap
如何确定在hashcode为负的情况下应该将键+值放在哪个索引中?
答案 0 :(得分:5)
来自http://grepcode.com/file/repository.grepcode.com/java/root/jdk/openjdk/6-b14/java/util/HashMap.java:
static int indexFor(int h, int length) {
return h & (length-1);
}