比较2 nsmutablearray并获得不同的对象在ios中的第三个数组

我想比较2 NSMutableArray和不同的对象到第三个Array 。 我怎样才能做到这一点 ?

Array1可以循环对象。

 Array1 = "a", "b","c","d","a","b","c"; Array2 = "a", "b", "c"; 

然后结果

 Array3 = "d"; 

提前致谢

使用集进行设置操作:

 NSSet *set1 = [NSSet setWithArray:array1]; NSMutableSet *set2 = [NSMutableSet setWithArray:array2]; [set2 minusSet:set1]; 

你也可以试试这个。

 NSMutableArray *array1 = [[NSMutableArray alloc]initWithObjects:@"1",@"2",@"3",@"1", nil]; NSMutableArray *array2 = [[NSMutableArray alloc]initWithObjects:@"2",@"1", nil]; NSMutableArray *largeArray; NSMutableArray *shortArray; if([array1 count] > [array2 count]){ largeArray = array1; shortArray = array2; } else { largeArray = array2; shortArray = array1; } [largeArray removeObjectsInArray:shortArray]; for (NSString *va in largeArray) { NSLog(@"%@",va); } 
 NSMutableArray *gotDiffArry= [[NSMutableArray alloc] init]; for(int i = 0 ; i < FirstArray.count; i++) { if(i < seconArray.count){ if(![seconArray[i] isEqual:firstArray[i]]){ [gotDiffArry addObject:[NSNumber numberWithInt:i]]; } } else { [gotDiffArry addObject:[NSNumber numberWithInt:i]]; } } 

编辑:

 for (int i = 0 ; i < firstArray.count ; i ++) { NSString *search = [firstArray objectAtIndex:i]; NSPredicate *predicate = [NSPredicate predicateWithFormat:@"ANY SELF CONTAINS %@", search]; NSMutableArray *temAraay = [secondArray filteredArrayUsingPredicate: predicate]; if(temArray.count >=0 ) { NSLog("%@", [temArray objectAtIndex:0]); } } 

我已经使用了以下,并得到了预期的结果:

 for(int i =0; i<[arraytwo count]; i++) { if (![arrayone containsObject:[arraytwo objectAtIndex:i]]) [arraythree addObject: [arraytwo obectAtIndex:i]]; } NSLog(@"%@",arraythree);