首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在什么情况下,通过NSArray使用NSSet更好?

在什么情况下,通过NSArray使用NSSet更好?
EN

Stack Overflow用户
提问于 2012-06-12 21:11:04
回答 5查看 56.2K关注 0票数 113

我在我的应用程序中使用过NSSets很多次,但我自己从来没有创建过。

什么时候使用NSSet比使用NSArray更好?为什么?

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2012-06-12 21:14:40

当集合中项的顺序不重要时,集合可以提供更好的性能来查找集合中的项。

原因是set使用散列值来查找项(如字典),而数组必须遍历其全部内容才能找到特定的对象。

票数 174
EN

Stack Overflow用户

发布于 2013-02-08 22:26:55

iOS 5+中提供了NSOrderedSet,因此主要区别在于您是否希望在数据结构中包含重复的对象。

票数 12
EN

Stack Overflow用户

发布于 2012-06-12 21:25:37

数组用于按索引访问项。任何项都可以多次插入数组中。数组控制其元素的顺序。

set基本上只用于检查项目是否在集合中。这些项目没有顺序或索引的概念。一个项目在一个集合中不能有两次。

如果一个数组想要检查它是否包含一个元素,它必须检查它的所有项。Sets旨在使用更快的算法。

你可以想象一个集合,就像一个没有值的字典。

注意,array和set不是唯一的数据结构。还有其他的,例如队列,堆栈,堆,斐波那契堆。我建议你读一本关于算法和数据结构的书。

有关详细信息,请参阅wikipedia

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

https://stackoverflow.com/questions/10997404

复制
相关文章

相似问题

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