objective-c - 为什么两个相等的对象必须具有相同的哈希值?

标签 objective-c cocoa equality nsobject

NSObject Protocol Reference说“如果两个对象相等,它们必须具有相同的哈希值。”

为什么必须? 两个相等的对象没有相同的哈希值可能会出现什么问题?

最佳答案

那么基本上你就无法在哈希表中查找相等的值。哈希码基本上用作在哈希表(或哈希集)中查找潜在键匹配的快速方法。这依赖于“对象相等意味着哈希相等”契约。

如果您不打算在使用散列进行快速查找的任何中使用对象,那么您很可能会避免使用返回不同散列代码的相同对象 - 但我真的会避免这样做如果可以的话。

关于objective-c - 为什么两个相等的对象必须具有相同的哈希值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10705163/

相关文章:

ios - 为什么 UIPickerView 显示带有白色边框

Javascript:为什么两个对象不相等?

iphone - 如何在 iPhone 上查找车速?

objective-c - @class vs. #import in header compile time saving with Clang?

cocoa - 如何知道 Mac OS X Lion 中的 NSWindow 是否全屏?

objective-c - OSX Cocoa 应用程序中的启动屏幕

cocoa - 以编程方式关闭 NSPreferencePane 或检测它何时再次加载

python - Python dict 的 View 对象的等价性

c# - myVariable(int) == 0 与 myVariable(Guid) == Guid.Empty 相同

objective-c - UIImageView isAnimating 是否在 4.0 SDK 中中断?