NSArray中NSNumbers的频率

时间:2012-08-10 23:06:24

标签: ios nsarray frequency nsnumber

您好我正在开发一个应用程序,该应用程序根据用户设置的一组上限和下限创建NSArray NSNumbers。在这些范围内将有最少5000个随机创建的数字......

我正在尝试找出最佳方法来获取数组中出现的每个随机生成的NSNumber的频率。

目前我认为我需要通过一些(?)来解析它,并设置一个NSDictionary,并将密钥作为它出现的数字和频率。然而,它试图在我的思绪冻结的情况下有效地做到这一点......

1 个答案:

答案 0 :(得分:2)

最简单的方法是使用NSCountedSet。只需使用initWithArray从数组中创建一个集合,它将使项目唯一(每个值只会进入一次),但会给出一个特定对象遇到次数的计数。这是一个例子:

    NSArray *array = @[@1,@2,@3,@5,@7,@2,@1,@3,@9,@3,@1];
    NSCountedSet *set = [[NSCountedSet alloc] initWithArray:array];
    NSLog(@"%@",set);
    for (NSNumber *num in [set allObjects]) {
        NSLog(@"Number is: %@  Count is: %d",num, [set countForObject:num] );
    }