NSArray和NSSet的区别

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 做交集运算

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 首先,NSSet和NSArray功能性质一样,用于存储对象,属于集合。但是和NAArray不一样的是它属于 “无序...
    shenchao123444阅读 3,424评论 0 2
  • http://blog.csdn.net/siwen1990 转载 首先,NSSet和NSArray功能性质一样,...
    天界的天籁阅读 848评论 0 0
  • 那个肖老师打羽毛球真的是超厉害的,打篮球也是可以。 跟他打了一会觉得好累,但过了那一阵累的时候,后来又变得好有...
    吴有一个大梦阅读 251评论 0 0
  • 咖啡色的衣服给人一种时尚大方的感觉,也是时尚界不败的时尚宠儿,在这个有些冷的秋天里,来上一杯热热的咖啡,何尝不是一...
    昌乐全福元ddm朱雪萍阅读 507评论 2 1
  • 财务自由,这是这几年一个很流行,也很诱人的词。是很多人期待达成的目标。但它的具体意思是什么呢? 文章...
    蓝色大鱼阅读 377评论 0 0

友情链接更多精彩内容