iOS_XZ之判断两个数组中的元素相同和相等

来源:互联网 发布:淘宝订单号后四位意义 编辑:程序博客网 时间:2024/06/15 11:20
相同是数组1中有的元素数组2中也有,位置可能不同;相等是数组1的元素和相同位置的数组2中的元素相同。
相等要求更高,位置和元素都相同。

//比较两个数组中是否有不同元素
- (BOOL)filterArr:(NSArray *)arr1 andArr2:(NSArray *)arr2 {
   NSPredicate *filterPredicate = [NSPredicatepredicateWithFormat:@"NOT (SELF IN %@)",arr1];
   //得到两个数组中不同的数据
   NSArray *reslutFilteredArray = [arr2 filteredArrayUsingPredicate:filterPredicate];
   if (reslutFilteredArray.count >0) {
       returnYES;
    }
   returnNO;
}

//比较两个数组中是否相等
- (BOOL)filterArr:(NSArray *)arr1 andArr2:(NSArray *)arr2 {
   if (arr1.count != arr2.count) { //两次数量不同,直接显示
       returnYES;
    }else { //两个数量相同,比较字符串
       int hasSame =0;
       for (int i =0; i < arr1.count; i++) {
           NSString *picUrl1 = arr1[i];
           NSString *picUrl2 = arr2[i];
           if ([picUrl1isEqualToString:picUrl2]) {
                hasSame++;
            }
        }
       
       if (hasSame < arr1.count) {//至少有一个不同
           returnYES;
        }else { //两个元素相同,hasSame不可能等于arr1.count
           returnNO;
        }
    }
}
阅读全文
0 0