美文网首页
Objective中的 ==和isEqual ,hash方法

Objective中的 ==和isEqual ,hash方法

作者: 笙绳省盛 | 来源:发表于2018-11-05 10:10 被阅读7次

1.对于基本类型 ==运算符表示的是值是否相同,对于对象类型,==运算符表示的是对象的地址是否相同(表示是否是同一个对象)。
2.isEqual可以判断2个对象是否相同。
3.hash方法只在对象被添加至NSSet和设置为NSDictionary的key时会调用
NSSet添加新成员时, 需要根据hash值来快速查找成员, 以保证集合中是否已经存在该成员
NSDictionary在查找key时, 也利用了key的hash值来提高查找的效率

hash方法主要是用于在Hash Table查询成员用的
hash值是对象判等的必要非充分条件
4.集合(NSSet)和数组(NSArray)有相似之处,都是存储不同的对象的地址;不过NSArray是有序的集合,NSSet是无序的集合。
集合是一种哈希表,运用散列算法,查找集合中的元素比数组速度更快,但是它没有顺序。

相关文章

  • Objective中的 ==和isEqual ,hash方法

    1.对于基本类型 ==运算符表示的是值是否相同,对于对象类型,==运算符表示的是对象的地址是否相同(表示是否是同一...

  • iOS中isEqual和Hash的笔记(一)

    iOS中isEqual和Hash的笔记(一) iOS中isEqual和Hash的笔记(一)

  • 面试准备第三篇

    1.实现isEqual和hash方法时要注意什么? |hash 对关键属性的hash值进行位或运算作为hash值 ...

  • [iOS]isEqual和hash方法的理解备忘

    记录对isEqual和hash方法理解很深的一篇文章:原文链接

  • 相等性

    当你要实现相等性的时候记住这个约定:你需要同时实现isEqual 和 hash方法。如果两个对象是被isEqual...

  • 对象相等性isEqual

    当你要实现相等性的时候记住这个约定:你需要同时实现isEqual 和 hash方法。如果两个对象是被isEqual...

  • iOS补充知识

    1、Hash方法与isEqual 1.1、== 运算符判断对象内存地址是否相同 1.2、isequal判断对象是否...

  • hash和isEqual

    场景:在一次数组过滤删除时,代码逻辑删除了一个对象,但是删完一个对象后,数组元素的个数少了两个,经调试发现,减少的...

  • iOS 对象判断相等

    == isEqual 重写isEqual 为什么需要重写对象的hash值 参考

  • hash与isEqual对象过滤

    参考:isEqual & hash参考:iOS开发 之 不要告诉我你真的懂isEqual与hash! 如何判断对象...

网友评论

      本文标题:Objective中的 ==和isEqual ,hash方法

      本文链接:https://www.haomeiwen.com/subject/gepjxqtx.html