在NSArray中查找重复项

时间:2013-07-17 04:30:32

标签: cocoa-touch nsarray

假设您有NSArray重复@[1,2,3,1,1,2,4,5,6];

查找所有重复项;这可以是伪代码。这是一个算法问题,而不是基础框架(不使用NSSet)问题。

2 个答案:

答案 0 :(得分:20)

如@Lithu所述,使用NSCountedSet,请参阅以下代码。

NSArray *arr = [[NSArray alloc]initWithObjects:@(1),@(1),@(2), @(1),nil];
NSCountedSet *cs = [[NSCountedSet alloc] initWithArray:arr];
NSLog(@"object count greater than 1 are");
for(NSNumber *num in cs)
{
    if([cs countForObject:num]>1)
    NSLog(@"%@",num);
}

答案 1 :(得分:12)

使用NSCountedSet  并且只打印为countForObject:方法

返回数字> 1的元素

有关详细信息,请参阅this