比较两个数组并获得常用项

sma*_*nja 19 iphone objective-c iphone-sdk-3.0 ios

我有两个数组,但它们有不同的长度.我想比较这两个数组并将常用项放入一个新数组.同时不应该有重复的项目是第三个数组.我真的搞砸了,请给我一个帮助.非常感谢...

SVD*_*SVD 56

像这样的东西?

NSMutableSet* set1 = [NSMutableSet setWithArray:array1];
NSMutableSet* set2 = [NSMutableSet setWithArray:array2];
[set1 intersectSet:set2]; //this will give you only the obejcts that are in both sets

NSArray* result = [set1 allObjects];
Run Code Online (Sandbox Code Playgroud)

这样做的好处是不会查找数组中的对象,同时循环遍历另一个阵列,该阵列具有N ^ 2的复杂性,如果阵列很大,可能需要一段时间.

编辑:set2不必是可变的,也可以使用

NSSet* set2 = [NSSet setWithArray:array2];
Run Code Online (Sandbox Code Playgroud)