[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]);
}
运行结果:
未完待续
具体例子如下:
-(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]);
}
运行结果:
未完待续
相关文章推荐
- 黑马程序员----OC学习笔记之NSArray
- NSMutableArray addObject覆盖问题
- 数组访问方式
- Object-c之可变数组
- ios开发极易犯的错误
- 渣蜀黍 - iOS 个人笔记(一)_数据处理
- 黑马程序员——入学Blog04----OC的构造方法
- 深复制和浅复制
- NSMutableArray的正确使用
- OC菜鸟成长记-OC中的数组创建和操作
- NSArray,NSMutableArray,NSDictionary,NSMutableDictionary总结
- NSString超全总结
- 黑马程序员 OC语言 - 7 结构体、NSString、NSArray、NSMutableArray
- NSUserDefaults保存自定义对象
- NSArray, NSMutableArray中常用API
- 数组排序之对一组学生按照成绩, 学号,年龄, 姓名排序~
- OC基础13:数字、字符串和集合2
- OC的Foundation框架2
- oc 集合容器总结+扩展名的添加和获取
- 学习练习--IOS雪花飘落的实现方法