美文网首页
判断2个字典是否相等

判断2个字典是否相等

作者: 似奔跑的野马 | 来源:发表于2019-02-27 13:18 被阅读0次

    1.方式1遍历2个字典,逐个key、value判断。

     NSDictionary *oneDict = @{@"key1" : @"nice", @"key2" : @"相等"};
     NSDictionary *twoDict = @{ @"key2" : @"相等", @"key1" : @"nice"};
           __block BOOL equal = YES;
            [oneDict enumerateKeysAndObjectsUsingBlock:^(id  _Nonnull key, id  _Nonnull obj, BOOL * _Nonnull stop) {
                id twoObj = [twoDict objectForKey:key];
                if(!twoObj || twoObj != obj) {
                    equal = NO;
                    *stop = YES;
                }
            }];
    //字典相等[9779:161029] -- 1 --
            NSLog(@"%ld",(NSInteger)equal);
    
    
    

    NOTE:确保遍历的字段keys多于判断的字典。
    这个还是简单的单层字典,如果内部嵌套数组,字典,那就不好判断了。

    2.使用isEqual:方法判断

     NSDictionary *oneDict = @{@"key1" : @"nice", @"key2" : @"相等",@"key3" : @[@"a",@"b"]};
     NSDictionary *twoDict = @{ @"key2" : @"相等", @"key1" : @"nice",@"key3" : @[@"a",@"b"]}.mutableCopy;
            NSLog(@"-- %ld --",(NSInteger)[oneDict isEqual:twoDict]);
    //字典相等[9930:165382] -- 1 --
    
    

    可以看出,字典这种无序的结构,可以判断。如果修改数组中的顺序,那个就不相等了。

    相关文章

      网友评论

          本文标题:判断2个字典是否相等

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