[iOS开发]判断两个数组中数据是否相同

工作中遇到的问题,话不多说了。直接上代码。

 
NSArray *array1 = [NSArray arrayWithObjects:@"a", @"b", @"c", nil];
NSArray *array2 = [NSArray arrayWithObjects:@"b", @"a", @"c", nil];
bool bol = false;

//创建俩新的数组
NSMutableArray *oldArr = [NSMutableArray arrayWithArray:modifierarr];
NSMutableArray *newArr = [NSMutableArray arrayWithArray:newModifierarr];

//对数组1排序。
[oldArr sortUsingComparator:^NSComparisonResult(id *obj1, id *obj2){
    return obj1 > obj2;
}];

//对数组2排序。
[newArr sortUsingComparator:^NSComparisonResult(id *obj1, id *obj2){
      return obj1 > obj2;
      }];

if (newArr.count == oldArr.count) {
    
   bol = true;
   for (int16_t i = 0; i < oldArr.count; i++) {
       
       id *c1 = [oldArr objectAtIndex:i];
       id *newc = [newArr objectAtIndex:i];
     
       if (![newc isEqualToString:c1];) {
          bol = false;
          break;
          }
      }
 }

if (bol) { 
    NSLog(@"两个数组的内容相同!"); 
} 
else { 
    NSLog(@"两个数组的内容不相同!"); 
}

 

 

欢迎大家批评指教!


本文中比较对象是否相等的时候用的isEqualToString 下面介绍下 isEqual、isEqualToString、== 区别
1: ==:比较的是指针地址.

2:isEqualToString 是 NSString 的方法

   首先都会判断 指针是否相等 ,相等直接返回YES,

   不相等再判断是否是同类对象或非空,空或非同类对象直接返回NO,

   而后依次判断对象对应的属性是否相等,若均相等,返回YES

3:isEqual 是 NSObject 的方法

   isEqual比isEqualToString,先判断类型是否相等,不相等直接返回NO.


  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值