NSMutableArray对象比较

时间:2011-05-11 12:32:53

标签: iphone objective-c

我想比较mutablearray对象条件如下......

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

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

所有数组都是NSMutable数组

请帮助

2 个答案:

答案 0 :(得分:1)

最简单的方法是使用sets

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

NSArray *array = [set allObjects];

array将为合并的第三个数组提供不重复的内容。

答案 1 :(得分: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];
    }
}

我通常做的是检查第一个数组中的每个对象是否出现在第二个数组中。最后,添加对象(如果之前未找到)。

编辑:Jhaliya的方法比我的答案快得多,使用像7KV7这样的答案就是使用它的正确方法。