在一个集合中有效地搜索NSString

时间:2013-02-01 07:02:35

标签: ios objective-c search nsstring

在内存中考虑一组数千个NSString个对象。

在集合中搜索特定NSString的最有效方法是什么?使用NSDictionary就足够了吗?或者保证NSSet的搜索是O(1)(找不到任何说明的文档)?

同样的策略适用于NSData个对象吗?

2 个答案:

答案 0 :(得分:4)

This page显示以下关于集合的说明:

  

注意:如果集合中的对象具有良好的散列函数,则访问元素,设置元素和删除元素都需要恒定的时间。由于散列函数较差(导致频繁的散列冲突),这些操作需要线性时间。作为Foundation的一部分的NSString等类具有良好的哈希函数。

因此,对于NSString,您可以根据上述情况获得恒定时间。

答案 1 :(得分:0)

NSSet在其实现中使用哈希表,并测试哈希冲突中所有元素之间的相等性。因此,性能与其元素的哈希效率直接相关。