2

伪代码:

NSArray *arr1 = {"mike","george","Tim","Tom"...}
NSArray *arr2 = {"mike","george","Chris","Adam"...}
NSArray *arr3 = {"Don","george","mike","Tom"...}
NSArray *arr4 = {"george","Nicole","Moe","mike"...}

//Add these arrays to the dictionary
for(int i=0; i<n, i++)
   [dictionary addObject:arr[i]];

我想找到所有数组中存在的重复值,而不是一些。在此示例中,该值将是 {"george","mike"}。

4

2 回答 2

3
NSArray *arr1 = @[@"mike",@"george",@"Tim",@"Tom" ];
NSArray *arr2 = @[@"mike",@"george",@"Chris",@"Adam" ];
NSArray *arr3 = @[@"Don",@"george",@"mike",@"Tom" ];
NSArray *arr4 = @[@"george",@"Nicole",@"Moe",@"mike" ];

NSMutableSet *intersection = [NSMutableSet setWithArray:arr1];
[intersection intersectSet:[NSSet setWithArray:arr2]];
[intersection intersectSet:[NSSet setWithArray:arr3]];
[intersection intersectSet:[NSSet setWithArray:arr4]];

NSArray *duplicates = [intersection allObjects];

NSLog(@"duplicates=%@", duplicates);

duplicates 包含一个数组,其中的值全部出现在其中:

duplicates=(
  mike,
  george
)
于 2012-11-22T00:09:33.003 回答
-1

假设dictionary实际上是一个 NSMutableArray,那么这样的事情会起作用:

NSMutableArray *results = [[NSMutableArray alloc] init];

for(NSString *name in [dictionary objectAtIndex:0]) {
    bool valid = true;
    for(int i=1;i<[dictionary count];i++) {
        if([[dictionary objectAtIndex:i] indexOfObject:name]==NSNotFound) {
            valid=false;
            break;
        }
    }
    if(valid)
        [results addObject:name];
}
于 2012-11-22T00:07:47.207 回答