IOS开发之NSSet应用

原创 2012年03月21日 11:14:29

NSSet,NSMutableSet,和NSCountedSet类声明编程接口对象的无序集合(散列存储:在内存中的存储位置不连续)。

而NSArray,NSDictionary类声明编程接口对象的有序集合(有序存储:在内存中的存储位置连续)。


NSSet,NSMutableSet; 与NSArray,NSMutableArray的区别一样,NSSet声明静态对象。当创建NSSet对象时初始化,后期气候的条目不能修改。而NSMutableSet对象则是可以动态添加和删除的,同时根据对象长度自动分配内存。

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


NSSet在实际应用中与NSArray区别不大,但是如果你希望查找NSArray中的某一个元素,则需要遍历整个数组,效率低下。而NSSet在查找某一特定的元素的时候则是根据hash算法直接找到此元素的位置,效率高。

NSSet

- (NSArray *)allObjects;

- (id)anyObject;

- (BOOL)containsObject:(id)anObject;

- (NSString *)description;

- (NSString *)descriptionWithLocale:(id)locale;

- (BOOL)intersectsSet:(NSSet *)otherSet;

- (BOOL)isEqualToSet:(NSSet *)otherSet;

- (BOOL)isSubsetOfSet:(NSSet *)otherSet;

+ (id)set;

+ (id)setWithObject:(id)object;

+ (id)setWithObjects:(const id *)objects count:(NSUInteger)cnt;

+ (id)setWithObjects:(id)firstObj, ... NS_REQUIRES_NIL_TERMINATION;

+ (id)setWithSet:(NSSet *)set;

+ (id)setWithArray:(NSArray *)array;


- (id)initWithObjects:(const id *)objects count:(NSUInteger)cnt;

- (id)initWithObjects:(id)firstObj, ... NS_REQUIRES_NIL_TERMINATION;

- (id)initWithSet:(NSSet *)set;

- (id)initWithSet:(NSSet *)set copyItems:(BOOL)flag;

- (id)initWithArray:(NSArray *)array;


NSMutableSet (NSExtendedMutableSet)

- (void)addObjectsFromArray:(NSArray *)array;

- (void)intersectSet:(NSSet *)otherSet;

- (void)minusSet:(NSSet *)otherSet;

- (void)removeAllObjects;

- (void)unionSet:(NSSet *)otherSet;

- (void)setSet:(NSSet *)otherSet;

+ (id)setWithCapacity:(NSUInteger)numItems;

- (id)initWithCapacity:(NSUInteger)numItems;



iOS 集合NSSet 用法详解

集合NSSet //NSSet中不能存在重复的对象 NSMutableSet *set1 = [[NSMutableSet alloc] initWithObjects:@"1",@"...
  • jeffasd
  • jeffasd
  • 2016年02月17日 10:04
  • 6096

iOS 中NSArray NSSet转换 过滤重复与排序操作

很久没写ios代码。最近和朋友聊天时候有强迫症,想强烈把代码给优化。 问题是这样的:现在数据是日期数组,想过滤掉重复的日期,怎么解决。 原始代码 这里想到更简洁点。用NSSet来搞定。 ...
  • watsy
  • watsy
  • 2014年01月02日 13:14
  • 17578

NSSet的使用及常用方法(如初始化、并集、交集、删除、添加、修改等)

1 set集合中一种 2 set是无序(不像array那样有顺序),例如:元素分别是@"1", @"2", @"3",实际显示时,可能是@"1", @"3", @"2",或@"2", @"3", @...
  • potato512
  • potato512
  • 2016年05月23日 16:50
  • 1683

Objective-C(十二、快速枚举,枚举器NSEnumerator和集合类NSSet)——iOS开发基础

版权声明:本文为博主原创文章,转载请注明出处http://blog.csdn.net/zsk_zane 结合之前的学习笔记以及参考《Objective-C编程全解(第三版)》,对...
  • u010850094
  • u010850094
  • 2016年07月19日 11:31
  • 348

iOS开发-Day19-OC NSDictionary&NSMutableDictionary&NSSet&NSMutableSet

代码说事!(代码中笔记较为详细,因此不单独再列出了!) 关于字典和动态字典 NSDictionary&NSMutableDictionary&NSSet&NSMutableSet...
  • u012348995
  • u012348995
  • 2015年08月06日 20:01
  • 324

iOS开发学习专题-基础知识(二)NSArray数组NSMutableArray可变数组NSSet集合NSMutableSet可变集合详细使用方式

本文主要讲解的是不可变数组NSArray可变数组NSMutableArray集合NSSet可变集合NSMutableSet详细使用方式包括类型和值之间的转换 文章是博主原创,转载请标明出处 首先来一个...
  • werctzzz
  • werctzzz
  • 2017年04月28日 18:12
  • 1621

Objective-C(十二、快速枚举,枚举器NSEnumerator和集合类NSSet)——iOS开发基础

快速枚举,枚举器NSEnumerator和集合类NSSet的介绍和常用方法
  • Zsk_Zane
  • Zsk_Zane
  • 2015年07月04日 15:27
  • 1687

【iOS开发】 中数组、集合、字典的使用(NSArray, NSSet, NSDictionary)

NSArray 用于对象有序集合(数组) NSSet 用于对象无序集合(集合) NSDictionary用于键值映射(字典) 以上三种集合类是不可变的(一旦初始化后,就不能改变) 以下...
  • u012462238
  • u012462238
  • 2014年07月03日 23:06
  • 518

iOS开发遍历集合(NSArray,NSDictionary、NSSet)方法总结

想到循环遍历数组、字典这些常见的集合,大家脑子里第一反应就是for循环和快速遍历,并津津乐道的传承使用着这些方法,这些已经足够满足开发中所有类似的需求,似乎没有什么需要总结的,其实不然,不信往下看,知...
  • songchunmin_
  • songchunmin_
  • 2016年05月05日 10:16
  • 720

iOS开发之OC基础————NSArray、NSSet、NSDictionary

总结一下Foundation框架中常用的三个类:NSArray、NSSet、NSDictionary的常用属性和方法 NSArray、NSSet、NSDictionary只能存储OC对象,不能存储基...
  • Lerryteng
  • Lerryteng
  • 2016年04月27日 19:29
  • 280
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:IOS开发之NSSet应用
举报原因:
原因补充:

(最多只允许输入30个字)