【发布时间】:2012-02-19 23:49:41
【问题描述】:
hastable 对要存储的对象使用一些哈希函数。
这个散列函数本质上是计算对象在表中的位置。
如果我们使用 HashTable 或 HashMap 并且大小无法容纳更多元素,则这些集合将调整大小以容纳更多元素。
这意味着必须重新散列每个存储的元素以计算新更大表中的新位置。
我的问题如下(以上是正确的):
我读到String 通过使用它存储的字符来计算它的hashcode,此外hashvalue 被存储在内部(缓存)以获得最佳性能,因为它不必重新计算。
这是我没有得到的部分。如果hashcode 是基于String 存储的字符,那么hashtable 中的位置是如何计算的?
使用String 的hashcode 是否有一些额外的逻辑?所以String 的hashcode 实际上不是hashvalue?
【问题讨论】:
标签: java string hash hashmap hashtable