NSSet与NSArray区别

NSSet到底什么类型,其实它和NSArray功能性质一样,用于存储对象,属于集合; NSSet,NSMutableSet类声明编程接口对象,无序的集合,在内存中存储方式是不连续的,不像NSArray(是有序的集合)类声明编程接口对象是有序集合,在内存中存储位置是连续的;

        NSSet和我们常用NSArray区别是:在搜索一个一个元素时NSSet比NSArray效率高,主要是它用到了一个算法hash(散列,也可直译为哈希);开发文档中这样解释:你可以用套装当元素的顺序不重要时,作为数组的替代,并且测试对象是否包含在集合中的性能是一个考虑因素 - 当数组被排序时,对成员资格的测试比使用集合更慢。

比如你要存储元素A,一个散列算法直接就能直接找到甲应该存储的位置;同样,当你要访问甲时,一个散列过程就能找到一个存储的位置而对于NSArray的,若想知道甲到底在不在数组中,则需要遍历整个数组,显然效率较低了;

       的NSSet,NSArray的都是类,只能添加可可对象,如果需要加入基本数据类型(整数,浮点,BOOL,双等),需要将数据封装成的NSNumber类型。

 

NSSet常用方法总结

+(ID)setWithObjects:OBJ1,OBJ2,...零使用一组对象创建新的集合
- (ID)initWithObjects:OBJ1,OBJ2,......零使用一组对象初始化新分配的集合
- (NSUInteger)计数返回集合成员个数
- (BOOL)containsObject:OBJ确定集合是否包含对象obj
- (BOOL)构件:OBJ确定集合是否包含对象obj
- (NSEnumerator *)objectEnumerator返回集合中所有对象到一个NSEnumerator类型的对象
- (BOOL)isSubsetOfSet:NSSet中判断集合是否是NSSet中的子集
- (BOOL)intersectsSet:NSSet中判断两个集合的交集是否至少存在一个元素
- (BOOL)isEqualToSet:NSSet中判断两个集合是否相等

 

NSMutableSet常用方法总结

- (ID)setWithCapcity:大小创建一个有规模大小的新集合
- (ID)initWithCapcity:大小初始化一个新分配的集合,大小为尺寸
- (无效)ADDOBJECT:OBJ添加对象obj到集合中
- (空)的removeObject:OBJ从集合中删除对象obj
- (无效)removeAllObjects删除集合中所有对象
- (无效)unionSet:NSSet中将NSSet中的所有元素添加到集合
- (无效)minusSet:NSSet中从集合中去掉所有的NSSet的元素
- (无效)interectSet:NSSet中集合和NSSet做交集运算
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值