[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.


你可能感兴趣的:(IOS)