BOol containsKey = [[dictionary allKeys] containsObject:foo];BOol containsKey = ([dictionary objectForKey:foo] != nil);
哪个方法更快,为什么?
解决方法 哈希查找应该更快,一般比过去所有的字典键,从它们创建一个数组(内存分配相对昂贵),然后搜索数组(这甚至不能是一个二分查找,因为数组没有排序) 。然而,为了科学的缘故,我做了两个可执行文件,执行每个风格100万次并计时它们。
使用allKeys:
real 0m4.185suser 0m3.890ssys 0m0.252s
有了objectForKey:
real 0m0.396suser 0m0.189ssys 0m0.029s
显然,各种因素可以影响这个字典的大小,缓存allKeys返回值等。我不希望有一种情况,其中数组搜索比字典查找快。
总结以上是内存溢出为你收集整理的可可 – 检查NSDictionary是否包含特定键的方法是否更快?全部内容,希望文章能够帮你解决可可 – 检查NSDictionary是否包含特定键的方法是否更快?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)