如何计算NSArray中的重复值?

时间:2011-07-27 07:50:10

标签: ios objective-c nsarray duplicates

我的NSArray的值包含重复项。 我发现重复但现在我怎么能找到没有。他们重复一次?

3 个答案:

答案 0 :(得分:36)

您可以使用NSCountedSet。将所有对象添加到计数集中,然后使用countForObject:方法查找每个对象出现的频率。

答案 1 :(得分:8)

示例:

NSArray *names = [NSArray arrayWithObjects:@"John", @"Jane", @"John", nil];
NSCountedSet *set = [[NSCountedSet alloc] initWithArray:names];

for (id item in set) {

    NSLog(@"Name=%@, Count=%lu", item, (unsigned long)[set countForObject:item]);
}

答案 2 :(得分:1)

您可以尝试这样的事情

__block NSInteger elementCount = 0;
NSArray *array;

[<#NSArray yourArray#> indexesOfObjectsPassingTest:^(id obj, NSUInteger idx, BOOL *stop){
    if (obj == <#yourObject#>) {
        elementCount++;
        return YES;
    }
    return NO;
}];

让我知道这是否适合您