![](/img/trans.png)
[英]Does HashMap.clear() resize inner hash table to the original size?
[英]how does hashmap ensure that each hash value is assigned a unique index in the hash table
我想了解HashMap的hash()和indexOf()方法如何将哈希表中的唯一索引分配给hashmap。 换句话说,为什么不可能将多个哈希值映射到同一索引。
在HashMap
,基础存储区数组大小在初始化时设置,并且可以相应地调整大小-项的存储区索引(在indexFor
)由key.hashCode() % (table.length - 1)
。
hashmap如何确保在哈希表中为每个哈希值分配唯一索引
不必是唯一的(请参见下文)
为什么无法将多个哈希值映射到同一索引
这是可能的-可以将多个Entry
(键/值对)映射到单个bucket
。 适当的哈希表实现通过使每个bucket
可以容纳多个Entry
克服此问题。 HashMap
特别使用链表-如果某个项目映射到已经占用的bucket
,则该项目将添加到存储桶链表的开头。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.