您的位置:首页 > 移动开发 > Objective-C

[Object C]_[初级]_[两个数组共有元素的提取,删除,数组的合并]

2015-10-29 20:03 851 查看
场景:应用于数据的合并,具体例子如联系人的分组,在设置多个分组的时候存在新建和删除部分分组,我们就要把新建的部分分组和删除的部分分组找出来。

具体例子如下:

-(void) doFindSameObjectFromArrays
{
NSMutableArray *array1 =[NSMutableArray new];//假设array1为一个联系人的分组groupIds
NSMutableArray *array2 =[NSMutableArray new];//假设array1为一个联系人修改后的分组groupIds

for (int i =1; i<6; i++)
{
if (i%3==0)
{
[array1 addObject:[NSString stringWithFormat:@"%d",i]];

}
if (i%2==0)
{
[array1 addObject:[NSString stringWithFormat:@"%d",i]];
}
else
{
[array2 addObject:[NSString stringWithFormat:@"%d",i]];
}
}
NSLog(@"联系人的分组:%@",array1);
NSLog(@"联系人修改后的分组:%@",array2);

//使用集合把相同的元素找出来
NSMutableSet *set1=[NSMutableSet setWithArray:array1];
NSMutableSet *set2 =[NSMutableSet setWithArray:array2];
//提取数组共同的元素
[set1 intersectSet:set2] ;//交集

NSLog(@"set1:%@",[set1 allObjects]);
//提取数组除共有元素以外的元素
[array1 removeObjectsInArray:[set1 allObjects]]; //找出被删除的分组id
[array2 removeObjectsInArray:[set1 allObjects]]; //找出新建的分组id
NSLog(@"删除的分组:%@",array1);
NSLog(@"新建的分组:%@",array2);

//合并两个数组,过滤掉相同的元素。
[set1 addObject:@"7"];//set1在上面被重新赋值了,所以添加一个元素以便于区分
[set1 unionSet:set2];//合并
NSLog(@"合并数据:%@",[set1 allObjects]);

}


运行结果:



未完待续
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  object c nsmutablearray