[Object C]_[初級]_[兩個數組共有元素的提取,刪除,數組的合併]

場景:應用於數據的合併,具體例子如聯繫人的分組,在設置多個分組的時候存在新建和刪除部分分組,我們就要把新建的部分分組和刪除的部分分組找出來。

具體例子如下:

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

運行結果:


未完待續

發佈了101 篇原創文章 · 獲贊 15 · 訪問量 14萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章