HashMap无法用于用户定义的对象?

时间:2013-09-06 16:43:35

标签: java hashmap

如果我使用HashMap,其中键是已定义类的对象,那么hashmap是否仍会提供O(1)性能?

我认为它不应该提供O(1)性能,因为用户定义对象的哈希键只返回键的地址,因此会有更多的冲突。

1 个答案:

答案 0 :(得分:1)

O(1)并不是HashMap中关键搜索的复杂性。 其次,这取决于您如何定义hashCode()equals方法。

如果您遵循合同,2个相等的对象具有相同的哈希码,并且如果对象具有相同的哈希码,则它们可能相等或不相等,那么是的,您将实现该appox。 O(1)的复杂性。

编辑: 为了保持复杂度O(1),你必须提供一个好的哈希函数才能有良好的分布。