[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 - 判断数组是否相等
- 下一篇: 判断两个数组是否有相同元素