NSDictionary VS NSArray + NSPredicate:更快/推荐

时间:2011-09-13 20:27:26

标签: performance nsarray nsdictionary nspredicate

从集合中获取对象的速度有多快?

一个。使用[dictionary objectForKey:key];在NSDictionary中搜索 或

湾使用[NSPredicate predicateWithFormat:@"someKey like %@",someKeyValue];

在NSArray中搜索

在这两种情况下,我都会创建集合。

问候!

1 个答案:

答案 0 :(得分:4)

假设一个编程良好的字典,那将会更快。一个好的字典应该使用hashmap在恒定时间O(1)中找到你的密钥。如果数组已排序,知道并使用二进制搜索,它可以优化为O(log n)的二进制搜索,否则它必须线性查看每个对象,即O(n)操作。最好的方法是,如果你能以某种方式将密钥转换为直接索引,可能是一次性排序。