hashmap如何处理负哈希码?

时间:2014-01-23 18:38:09

标签: java collections hashmap

Hashcode的类型为int,因此它可以是负数和正数。 但是HashMap使用哈希码来确定表中哪个索引放入键+值,比如, hashcode / size_of_table = table_index

HashMap如何确定在hashcode为负的情况下应该将键+值放在哪个索引中?

1 个答案:

答案 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);
}