得到2个数组的子集

时间:2011-11-09 19:55:00

标签: iphone objective-c xcode

我有2 NSArray,我们可以将其称为CountriesArrayUNCountriesArrayCountriesArray包含世界上所有国家/地区,UNCountriesArray包含属于联合国的所有国家/地区。

我想获得2个数组的subset。所以最后我应该得到一个阵列,其中包含不属于联合国的国家。有人可以帮助我编写获取2个数组子集的objective-c代码吗?

2 个答案:

答案 0 :(得分:3)

使用套装:

NSMutableSet *countriesSet = [NSMutableSet setWithArray:countriesArray];
NSSet *unSet = [NSSet setWithArray:unCountriesArray];
[countriesSet minusSet:unSet];
// countriesSet now contains only those countries who are not part of unSet

请记住,该集的成员未分类。如果您想要一个已排序的数组,则必须重新排序结果。

答案 1 :(得分:1)

您可以使用NSMutableArray的removeObjectsInArray方法执行此操作。例如:

NSMutableArray *countriesArray = [NSMutableArray arrayWithObjects:@"1", @"2", @"3", @"4", @"5", nil];
NSArray *unCountriesArray = [NSArray arrayWithObjects:@"2", @"4", nil];
[countriesArray removeObjectsInArray:unCountriesArray];
NSLog(@"Countries array: %@", countriesArray);