2
哈希码的类型为int
,所以它可以是负值和正值。 但是HashMap
使用散列码来确定表格放置键+值的哪个索引,如 hashcode/size_of_table = table_index
。hashmap如何处理负散列码?
但是如何确定HashMap
应该在哪个索引中放置key + value以防hashcode为负数?
哈希码的类型为int
,所以它可以是负值和正值。 但是HashMap
使用散列码来确定表格放置键+值的哪个索引,如 hashcode/size_of_table = table_index
。hashmap如何处理负散列码?
但是如何确定HashMap
应该在哪个索引中放置key + value以防hashcode为负数?
从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);
}
以胡乱猜测,它不完全是一个谜。 – Kayaman