您的位置:首页 > 移动开发 > IOS开发

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

2017-06-27 17:05 295 查看
相同是数组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;
        }
    }
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: