如果我使用HashMap
,其中键是已定义类的对象,那么hashmap是否仍会提供O(1)性能?
我认为它不应该提供O(1)性能,因为用户定义对象的哈希键只返回键的地址,因此会有更多的冲突。
答案 0 :(得分:1)
O(1)
并不是HashMap中关键搜索的复杂性。
其次,这取决于您如何定义hashCode()
和equals
方法。
如果您遵循合同,2个相等的对象具有相同的哈希码,并且如果对象具有相同的哈希码,则它们可能相等或不相等,那么是的,您将实现该appox。 O(1)
的复杂性。
编辑: 为了保持复杂度O(1),你必须提供一个好的哈希函数才能有良好的分布。