返回Cocoa中数组中最常见的值

时间:2012-09-26 11:59:40

标签: arrays cocoa-touch collections counter

Python有一个集合库。在我的网络应用程序中,我使用collections.Counter(aList).most_common([n])返回naList最常见的项目。

美观,简洁,速度相当快。

现在我正在研究iOS应用程序。 Objective-C或Cocoa框架中是否有任何东西可以为字符串数组提供相同的函数?

假设aListNSArrary的{​​{1}}。

NSStrings

有任何关于缩小或改善其表现的建议吗?

1 个答案:

答案 0 :(得分:0)

在我的手机上,但这应该让你到了一半:

NSArray *input = ...
NSCountedSet *set = [[NSCountedSet alloc] initWithArray:input];
NSMutableDictionary *output = [[NSMutableDictionary alloc] init];
for (id elem in set) [output setObject:[set countForObject:elem] forValue:elem];

如果这还不够快,我会考虑在插入时进行优化。