2011-05-11 94 views
1

我想比较mutablearray对象的条件是...NSMutable数组对象比较

array1 = 1,2,3,4; array2 = 2,1,4,3,6,7;

比较这两个数组对象&如果对象已经在数组中,则不添加,否则添加在数组3中。

所有的阵列NSMutable阵列

请帮助

+0

所以你正在尝试做出不在两个数组中的数字的第三个数组?你能排序数组吗? – drewag 2011-05-11 12:38:38

回答

1

最简单的方法是使用sets

NSMutableSet *set = [NSMutableSet setWithArray:array1]; 
[set addObjectsFromArray:array2]; 

NSArray *array = [set allObjects]; 

array会给没有重复合并的第三阵列。

1
for (int i = 0; i < [array1 count]; i++) 
{ 
    BOOL addThisNumber = YES; 
    for (int j = 0; j < [array2 count]; j++) 
    { 
     int first = [array1 objectAtIndex:i]; 
     int second = [array2 objectAtIndex:j]; 
     if ([first compare:second] == NSOrderedSame) 
     { 
      addThisNumber = NO; 
     } 
    } 

    if (addThisNumber) 
    { 
     [array3 addObject:first]; 
    } 
} 

我通常做的是检查对于所述第一阵列它是否所述第二阵列中的发生在每个对象。最后,如果以前未找到该对象,请添加该对象。

编辑:贾利亚的方法工作得更快,然后我的答案,并使用像7KV7的答案是适当的方式来使用它。