2 ooomiao oOOMIAO 于 2013.06.05 17:19 提问

检测数组中的条目重复几次

检测数组中的条目重复多少次。数组如下:

"Family:0",
"Family:0",
"Family:0",
"Gold:3",
"Gold:3"

因此返回的条目数应该是3和2。应该怎么实现?我试过的代码(当然没实现):

int occurrences = 0;
int i=0;
for(NSString *string in arrTotRows){
    occurrences += ([string isEqualToString:[arrTotRows objectAtIndex:indexPath.section]]); //certain object is @"Apple"
    i++;
}

1个回答

Mr_me
Mr_me   2013.06.05 17:48

使用NSCountedSet实现,将所有的对象添加为计数设置,使用countForObject:方法算出重复次数。
例子:

NSArray *names = [NSArray arrayWithObjects:@"Family:0", @"Family:0", @"Gold:3", @"Gold:3", nil];
    NSCountedSet *set = [[NSCountedSet alloc] initWithArray:names];

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

输出:

Name=Gold:3, Count=2

Name=Family:0, Count=2
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!