1

根据网页http://www.javamex.com/tutorials/collections/hash_codes_advanced.shtml

哈希码不能唯一标识一个对象。它们只是缩小了匹配项的选择范围,但预计在正常使用中,多个对象很有可能共享相同的哈希码。因此,当在映射或集合中查找键时,必须比较实际键对象的字段以确认匹配。”

首先,这是否意味着 has 映射中使用的键也可能指向一个以上的值?我认为确实如此。

如果是这种情况。如何创建“始终准确”的哈希图或类似的键值对象?

我的键需要是字符串,我的值也需要是字符串。我需要大约 4,000 到 10,000 个键值对。

4

2 回答 2

3

一个标准的 hashmap 将保证唯一的键。哈希码不等同于密钥。这只是一种将可能值集快速减少为具有特定哈希码的对象(在您的情况下为字符串)的方法。

于 2012-06-30T05:32:55.807 回答
3

首先,请注意:Java 的 HashMaps 工作。假设哈希函数被正确实现,对于同一个键,你总是会得到相同的值。

现在,在哈希映射中,键的哈希码决定了值将被放置在哪个桶中(如果您不熟悉该术语,请阅读哈希表)。映射的性能取决于哈希码的分布情况,以及每个桶中值的数量的平衡程度。既然你正在使用String,请放心。HashMap 将“始终准确”。

于 2012-06-30T05:39:38.923 回答