首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么使用NSArray而不是NSOrderedSet

为什么使用NSArray而不是NSOrderedSet
EN

Stack Overflow用户
提问于 2016-02-11 15:00:26
回答 2查看 2.2K关注 0票数 1

在许多好的在线文章中,包括这一篇:http://nshipster.com/nsorderedset/,据说我们仍然应该更喜欢NSArray而不是NSOrderedSet

我注意到的一个优势是NSArray@[obj1, obj2, ...]的语法糖

那么,NSArray还有哪些其他优点使它成为首选的集合管理器而不是NSOrderedSet,它似乎有很多好处(快速访问元素),并且基本上包括NSArray功能?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-02-11 15:50:52

我定时插入了1,000,000个随机NSNumbers,发现NSMutableOrderedSet大约慢了7到10倍。随着项目的减少,时间变得更近,而在1000项时,时间大约慢了2.5倍。进入时间很近。

这些时间代表了我所看到的NSMutableOrderedSet最好的一面:

迭代数: 1000000

NSMutableOrderedSet: 782毫秒

计数: 999868

NSMutableArray: 112毫秒

计数: 1000000

请注意,有132个副本是被NSMutableOrderedSet拒绝的。

票数 10
EN

Stack Overflow用户

发布于 2022-10-24 10:13:01

最好的建议是:仅当您需要NSOrderedSet的特定特性时才使用它。

  1. 强制执行唯一性(同一对象不能插入不止一次)。使用NSArray -的任何实现都将是相同的,或者比NSArray慢。
  2. 要快速检查集合中是否已经存在一个对象-在这里,NSOrderedSet将比NSArray - O(N)快得多- O(1)

否则-(如果您不需要设置特性),当然要使用NSArray。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35342752

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档