如何比较2 NSMutableArray并获得不同数量的值

时间:2013-05-29 13:07:58

标签: objective-c nsmutablearray nsarray compare

我想比较2个NSMutableArray值并检查哪个indexPath不同,并将这个索引数存储在一个数组中。 例如,我有这些NSMutableArray:

NSMutableArray *a = [[NSMutableArray alloc]initWithObjects:@"1",@"2",@"3",@"4",@"5",@"6", nil];
NSMutableArray *b = [[NSMutableArray alloc]initWithObjects:@"11",@"2",@"5",@"3",@"53",@"6", nil];

我希望将这两个NSMutableArray索引与索引进行比较(将值与值进行比较)并告诉我这些NSMutableArrays中的哪个数组索引是不同的。例如在顶部的两个NSMutableArray中,这个索引是不同的(0,2,3,4),我希望将这些值存储在某个Array中。

2 个答案:

答案 0 :(得分:0)

NSMutableArray* differentIndex;
differentIndex = [[NSMutableArray alloc] init];
for(int i = 0 ; i < [a count]; i++) {
    if(i < [b count]){
        if(![b[i] isEqual:a[i]]){
             [differentIndex addObject:[NSNumber numberWithInt:i]];
         }
    } else {
        [differentIndex addObject:[NSNumber numberWithInt:i]];
    }
}

现在,您的differentIndex包含数组中的所有不同索引。 :)

答案 1 :(得分:0)

NSMutableArray *a = [[NSMutableArray alloc]initWithObjects:@"1",@"2",@"3",@"4",@"5",@"6", nil];
NSMutableArray *b = [[NSMutableArray alloc]initWithObjects:@"11",@"2",@"5",@"3",@"53",@"6", nil];
NSMutableArray *new = [[NSMutableArray alloc]init];
for(int i =0;i<[b count]<=[a count]?[b count]:[a count];i++)
{
    NSString *_keyA = [a objectAtIndex:i];
    NSString *_keyB = [b objectAtIndex:i];
    if ([_keyA isEqualToString:_keyB])
       continue;
    [new addObject:[NSString stringWithFormat:@"%d",i]];
}