【发布时间】:2010-11-03 01:48:13
【问题描述】:
为什么Hashset被称为“Hash”-set?
我知道我们称之为 hashtable 或 hashmap,因为它是一个键值存储,当我们 put() 时,键被散列并使用良好的散列函数均匀分布。
我假设它被称为 HashSet,因为当我们 add() 时,该值被散列并存储以保持其唯一性。但为什么要矫枉过正呢?我们并不真正关心数据的“平均分布”,就像我们在哈希表中所做的那样。
【问题讨论】:
-
可能是因为它是一个由“HashMap”支持的Set,所以它在幕后具有那种性能。
-
“随机存储”是什么意思?您的哈希表理论似乎更需要完善。
-
一个“好的”散列函数的责任是尽可能多地保持熵。这样散列的键就被平均分配了。
-
均匀/均匀分布不是随机的。
-
是的,明白了。问题更新了:)