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

来源:互联网 发布:布尔型数据 编辑:程序博客网 时间:2024/04/29 08:09

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

具体例子如下:

-(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]);     }

运行结果:


未完待续

1 0