aec*_*tci 40 iphone intersection nsmutablearray
我有三个NSMutableArray包含根据不同的标准添加到列表中的名称.
这是我的数组伪代码:
NSMutableArray *array1 = [@"Jack", @"John", @"Daniel", @"Lisa"];
NSMutableArray *array2 = [@"Jack", @"Bryan", @"Barney", @"Lisa",@"Penelope",@"Angelica"];
NSMutableArray *array3 = [@"Jack", @"Jerome", @"Dan", @"Lindsay", @"Lisa"];
Run Code Online (Sandbox Code Playgroud)
我想找到第四个数组,其中包括这三个数组的交集.在这种情况下,例如它将是:
NSMutableArray *array4 = [@"Jack",@"Lisa"];
Run Code Online (Sandbox Code Playgroud)
因为所有三个阵列都有jack和lisa作为元素.有没有办法简单地这样做?
Dav*_*ong 74
用途NSMutableSet:
NSMutableSet *intersection = [NSMutableSet setWithArray:array1];
[intersection intersectSet:[NSSet setWithArray:array2]];
[intersection intersectSet:[NSSet setWithArray:array3]];
NSArray *array4 = [intersection allObjects];
Run Code Online (Sandbox Code Playgroud)
唯一的问题是你丢失了元素的排序,但我认为(在这种情况下)那没关系.
正如评论中指出的那样(感谢Q80!),iOS 5和OS X 10.7添加了一个名为NSOrderedSet(Mutable带子类)的新类,它允许您在保持顺序的同时执行这些相同的交集操作.
| 归档时间: |
|
| 查看次数: |
17970 次 |
| 最近记录: |