根据我对hashmap的理解
问题1: - 对于Hashmap,返回每个键的唯一哈希码
确定对象是否包含在hashmap中的时间是不变的 并且不依赖于hashmap的大小
问题2: - 对于Hashmap,为每个键返回相同的哈希码,但为equals方法返回false
确定对象是否包含在hashmap中的时间取决于hashmap的大小
这是真的吗?
答案 0 :(得分:3)
通常认为hashmap查找只需要O(1)时间。这是查询的平均时间。但在最坏的情况下,它也可能是O(n)。例如,如果在hashmap的实现中使用链接列表,则可能发生此情况。但是如果使用自平衡树可以避免将最坏情况下的情况减少到O(log n)时间。
答案 1 :(得分:1)
如果我们有一个适当编写的哈希函数,那么检索顺序就是O(1)。
可以这样想,如果您的哈希函数被正确编写,以便元素分布在存储桶中,那么搜索元素的时间将与存储桶的大小成比例。现在,如果你有一个恒定大小的存储桶,并且桶的数量或内存大小不是约束,那么你将能够在恒定时间内检索该元素。
关于你的第二个问题:是的,如果你有一个哈希函数返回相同的哈希码,那么元素的检索顺序将与hashmap的大小成正比,也称为O(n)