NSArray最有效的方法:

dfs*_*fsf 3 algorithm cocoa-touch objective-c ios

假设我有一个名为(NSArray)的数组arrayA -> {@"A", @"B", @"C", @"D", @"E"}.我有另一个数组(NSArray)调用arrayB -> {@"D", @"E", @"F", @"G", @"H"}.

对于我来说,获得两个数组的最有效方法是:1.一个数组是两个数组的子集,因此在这种情况下它将是{@"D",@"E"}和arrayB中唯一的子集,所以{@"F",@"G",@"H"}.

如果你看一下这张图表会更容易:http://theconsigliori.com/blog/wp-content/uploads/2009/09/venn-diagram.jpg

A和B是数组,我想获得2个数组, 1. A&B 2. B-(A&B).

我正在使用objective-c/cocoa-touch,但欢迎任何一般的想法.该阵列将长约6000个元素,我在iPad上这样做.

谢谢!

alb*_*amg 10

两个数组的交集:

NSMutableSet *intersectionDict = [NSMutableSet setWithArray:arrayA];
[intersectionDict intersectSet:[NSSet setWithArray:arrayB]];
NSArray *intersectionArray = [intersectionDict allObjects];
Run Code Online (Sandbox Code Playgroud)

arrayB中对象的子集在arrayA中不存在:

NSMutableArray *arrayC = [NSMutableArray arrayWithArray:arrayB];
[arrayC removeObjectsInArray:arrayA];
Run Code Online (Sandbox Code Playgroud)