Performance NSDictionary VS NSArray+;NSPredicate:哪个更快/推荐

Performance NSDictionary VS NSArray+;NSPredicate:哪个更快/推荐,performance,nsarray,nsdictionary,nspredicate,Performance,Nsarray,Nsdictionary,Nspredicate,从集合中获取对象的速度更快的是什么 a。使用[dictionary objectForKey:key]在NSDictionary中搜索 或 b。使用[NSPredicate predicateWithFormat:@“someKey like%@”,someKeyValue]在NSArray中搜索 在这两种情况下,我都创建了集合 问候 假设有一本编程良好的词典,速度会快得多。一个好的字典应该使用hashmap在常量时间O(1)中找到你的键。如果数组被排序,知道这一点,并使用二进制搜索,它可以优化

从集合中获取对象的速度更快的是什么

a。使用
[dictionary objectForKey:key]在NSDictionary中搜索

b。使用
[NSPredicate predicateWithFormat:@“someKey like%@”,someKeyValue]在NSArray中搜索

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


问候

假设有一本编程良好的词典,速度会快得多。一个好的字典应该使用hashmap在常量时间O(1)中找到你的键。如果数组被排序,知道这一点,并使用二进制搜索,它可以优化为O(logn)处的二进制搜索,否则它将不得不线性地查看每个对象,即O(n)操作。最好的办法是,如果你能以某种方式将键变成一个直接索引,可能是一次性排序。

一本好的字典会在O(1)中找到你的键。Hashmaps有固定的时间查找。“Good”是一个非常灵活的词。基于散列和基于树的词典在不同的情况下都有其吸引力。NS/CFDictionary通常是基于散列的结构,但保留比它慢的权利(参见CFDictionary.h)。