发布于 2012-06-12 21:14:40
当集合中项的顺序不重要时,集合可以提供更好的性能来查找集合中的项。
原因是set使用散列值来查找项(如字典),而数组必须遍历其全部内容才能找到特定的对象。
发布于 2013-02-08 22:26:55
iOS 5+中提供了NSOrderedSet,因此主要区别在于您是否希望在数据结构中包含重复的对象。
发布于 2012-06-12 21:25:37
数组用于按索引访问项。任何项都可以多次插入数组中。数组控制其元素的顺序。
set基本上只用于检查项目是否在集合中。这些项目没有顺序或索引的概念。一个项目在一个集合中不能有两次。
如果一个数组想要检查它是否包含一个元素,它必须检查它的所有项。Sets旨在使用更快的算法。
你可以想象一个集合,就像一个没有值的字典。
注意,array和set不是唯一的数据结构。还有其他的,例如队列,堆栈,堆,斐波那契堆。我建议你读一本关于算法和数据结构的书。
有关详细信息,请参阅wikipedia。
https://stackoverflow.com/questions/10997404
复制相似问题