【发布时间】:2020-02-11 11:14:51
【问题描述】:
这不是代码问题,我只是想了解哈希图和时间复杂度的概念。
我想我知道 hashMaps/sets 等是如何工作的,我想我理解为什么 HashMaps.get 有一个恒定的时间,但是当我们有一个非常大的 hashMap 时,存储值的索引应该重叠。当 2 个哈希码解析为同一个索引时,它们会存储在该索引处的 LinkList 中,对吧?
难道不是所有元素都作为链接列表存储在一个索引中吗?现在不应该在 O(n) 的最坏情况下运行 HashMap.get。
【问题讨论】:
-
是的,你是对的。这取决于哈希函数的实现。
hash()的主要属性之一是一致性,每个哈希值的生成概率大致相同。
标签: hash linked-list hashmap time-complexity