5

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

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

同样的策略是否适用于NSData对象?

4

2 回答 2

4

此页面显示以下有关集合的注释:

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

因此,NSString根据上述情况,您可以期待恒定的时间。

于 2013-02-01T08:41:37.767 回答
0

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

于 2013-02-01T07:18:12.353 回答