NSSet类型 以及与NSArray区别

来源:互联网 发布:补水保湿精华 知乎 编辑:程序博客网 时间:2024/05/14 19:58

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


        NSSet和我们常用NSArry区别是:在搜索一个一个元素时NSSet比NSArray效率高,主要是它用到了一个算法hash(散列,也可直译为哈希);开发文档中这样解释:You can use sets as an alternative to arrays when the order of elements isn’t important and performance in testing whether an object is contained in the set is a consideration—while arrays are ordered, testing for membership is slower than with sets.

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


       NSSet,NSArray都是类,只能添加cocoa对象,如果需要加入基本数据类型(int,float,BOOL,double等),需要将数据封装成NSNumber类型


NSSet 常用方法总结

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



NSMutableSet 常用方法总结

-(id)setWithCapcity:size创建一个有size大小的新集合-(id)initWithCapcity:size初始化一个新分配的集合,大小为size-(void)addObject:obj添加对象 obj 到集合中-(void)removeobject:obj从集合中删除对象 obj-(void)removeAllObjects删除集合中所有对象-(void)unionSet:nsset将nsset的所有元素添加到集合-(void)minusSet:nsset从集合中去掉所有的NSSet 的元素-(void)interectSet:nsset集合和NSSet 做交集运算
0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 孕妇感冒头痛怎么办快速缓解疼痛 投稿后发现文章有错误怎么办 如有一方不同意离婚怎么办 孩子上课时注意力不集中怎么办 幼儿上课时注意力不集中怎么办 孩子读初中不爱读书怎么办 老师需要刺激孩子家长怎么办 错觉视界第11关怎么办 爱逃学的学生老师怎么办 论文投稿发现有错误怎么办 孩子上初中数学物理不好怎么办 火山小视频误踢怎么办 铁棍山药弄到手很痒怎么办 山药皮过敏很痒怎么办 貔貅被家人摸了怎么办? 摸了山药很痒怎么办 山药搞得皮肤痒怎么办 手上弄了山药痒怎么办 老板就是个富二代怎么办 中考准考证密码忘了怎么办 准考证号和密码忘了怎么办 安运继续教育考试不及格怎么办 微信的视频打不开怎么办 公众号被取消了怎么办 合同上不写工资怎么办 已经上班了想考个大专文凭怎么办 微信小程序违规暂停服务怎么办 程序锁密码忘了怎么办 忘了应用锁密码怎么办 毕业后发现论文有错误怎么办 柯丽尔打胶片时胶片卡住了怎么办 闽教英语要收费怎么办 高一学生英语差怎么办 高一英语基础差怎么办 老师教育学生学生跑出教室怎么办 研究生课题难出论文怎么办 一审过了上诉期怎么办 民事判决赔偿不给钱怎么办 民事申诉期过了怎么办 过了两年申诉期怎么办 微快递下单不能定位怎么办