为什么HashSet的名字中有"Hash"?

zen*_*ngr 9 java hashmap hashset

为什么Hashset称为"哈希"集?

我理解我们调用hashtable或hashmap,因为它是一个键值存储,当我们put()时,键被散列并使用良好的散列函数均匀分布.

我假设它被称为HashSet,因为当我们添加()时,值被散列并存储以保持其唯一性.但为何过度杀伤?我们并不像在哈希表中那样关心数据的"平等分配".

Aff*_*ffe 12

我们关心平等分配,因为我们希望在基本Collection操作上保持恒定的时间性能.为了尊重a的基本规则SET,没有两个对象是相等的,我们希望快速找到可能相等的匹配. HashSet这是一个相当不错的方式.与理论相比ArraySet,添加新元素是线性时间操作,以迭代并检查每个单独的现有条目是否相等.