NSMutableSet与NSMutableArray的区别

15

有什么区别?

在我的情境中,我需要能够动态地添加和删除对象。用户点击表格行以勾选或取消勾选,并因此将引用的对象添加或从列表中移除。

一个猜测是数组有索引项,而集合没有索引项?


1
请确保给帮助过你的答案点赞,而不是留下评论。 - amattn
4个回答

29

NSSet/NSMutableSet不会按照特定的顺序保存元素,NSArray/NSMutableArray则会按照特定的顺序保存元素。如果你正在构建一个表视图,那么你应该将数组作为你首选的数据源。


此外,如果顺序无关紧要,并且您经常询问特定项是否属于该组,则使用NSSet比使用NSArray更有效率。 - GoRoS

23

此外,NSMutableSet确保所有对象都是唯一的。

NSMutableArray与UITableView很搭配,因为元素具有索引,所以可以返回[array count]来获取表格行数,或者[array objectAtIndex:rowNumber]来轻松地将元素与行关联起来。


这是我之前没有意识到的事情。 - Brenden

3
此外,根据文档,使用NSSets测试对象成员资格速度更快,当元素的顺序不重要且在测试对象是否包含在集合中时性能是一个考虑因素时,您可以使用集合作为数组的替代品。尽管数组是有序的,但是与集合相比,在测试成员身份时速度较慢。

0

有三个主要的区别。1)集合是无序的,2)没有索引,3)不能有重复的值,而数组是有序的、有索引的,并且可以存储重复的值。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接