美文网首页
从containsObject 到 hash值

从containsObject 到 hash值

作者: 克洛斯贝尔 | 来源:发表于2019-07-23 15:44 被阅读0次

曾经一直以为containsObject是比较内存地址的,直到最近才发现只是一个误解。

    NSString *s = @"1";
    NSString *ss = [NSMutableString stringWithFormat:@"%@",@"1"];
    
    NSLog(@"hash %lu %p", (unsigned long)s.hash, s);
    //hash 918 0x101306d48
    NSLog(@"hash %lu %p", (unsigned long)s.hash, ss);
    //hash 918 0x101306d48
    
    NSLog(@"== %@", s == ss ? @"相等" : @"不等");
    //== 不等
    NSLog(@"isEqual %@", [s isEqual:ss] ? @"相等" : @"不等");
    //isEqual 相等
    
    NSArray *array = @[ss];
    NSLog(@"containsObject %@", [array containsObject:s] ? @"包含" : @"不包含");
    //containsObject 包含

翻翻资料,写写代码得知
== 比较的是内存地址是否相同
isEqual 先比较hash值,然后比较数据类型,都相同就是相同
containsObject 会调用isEqual

相关文章

  • 从containsObject 到 hash值

    曾经一直以为containsObject是比较内存地址的,直到最近才发现只是一个误解。 翻翻资料,写写代码得知==...

  • nginx 负载均衡之url_hash,least_conn

    如图所示,url_hash根ip_hash的区别就在于计算hash值从 hash(ip)到了hash(url),但...

  • Hash一致性算法浅析

    Ngnix负载均衡策略包含Hash算法,就是通过Hash算法将请求hash求值,根据hash值定向到服务器。 假定...

  • SQL性能优化原则-前言

    1、SQL执行过程客户端提交SQL->计算SQL字符的HASH值->从SQL缓存区中查找是否有相同的HASH值->...

  • MySQL Hash索引 vs B-Tree索引

    Hash 索引通过 hash 算法计算 hash 值,存储的索引应该也是 hash 值,查找时先计算查找字段的 h...

  • 面试准备第三篇

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

  • 为什么HashMap不是线程安全的?

    添加,删除value时,需要计算hash值,定位entry数组到hash位置。如果多线程,会出现线程A添加值,计算...

  • hash类型操作1

    hash 类型 hash值格式与 键值对相似, 称为 字段 和 值,并且字段不重复 例子: HSET 添加hash...

  • (17)Redis的rehash与ConcurrentHashM

    dict是Redis的hash数据结构,用key值计算hashkey,元素插入到某个hash链上(拉链法解冲突)。...

  • 路由器的两种工作模式

    1.对于一个url来说,什么是hash值?——#及后面的内容就是hash值2.hash值不会包含在http请求中,...

网友评论

      本文标题:从containsObject 到 hash值

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