在很多语言中,您都可以从哈希表中获取键列表。就像java中 HashMap 的keySet()方法一样。如何从填充的 HashMap 中获得此值?哈希函数不是不可逆的吗?您是否也将 key 保存在单独的列表中?
那么,当我使用函数来获取填充哈希表中使用的键列表时,该函数的时间复杂度是多少?
对于我的特定问题,我碰巧知道哈希表中的最大条目数。这有帮助吗?
最佳答案
实际上每个哈希表除了值之外还存储键。无论如何,为了解决哈希冲突,这是必要的(在某些情况下,冲突被证明是不可能的,但这需要事先枚举完整的 key 集,因此它不适用于通用哈希表)。也就是说,哈希表 {"foo": 1, "bar": 2}
看起来不是这样的:
1
2
而是像这样
("foo", 1)
("bar", 2)
迭代键就是简单地迭代哈希表的底层结构。
关于performance - 获取哈希表中键列表的时间复杂度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20585460/