集合(NSSet)对象是一组单值对象的组合。比如,一个包含1到50个数字的集合。
集合对象的操作包括搜索、增加、删除集合中的成员,比较两个集合、计算两个集合的交集和并集等。
1、NSSet常用方法:
+(id)setWithObjects:obj1,obj2,obj3,...nil //使用一组对象创建新集合
-(id)initWithObjects:obj1,obj2,...nil //使用一组对象初始化新分配的集合
-(NSUInterger)count //返回集合的成员个数
-(BOOL)containsObject:obj //确定集合是否包含对象obj
-(BOOL)member:obj //确定集合是否包含对象obj
-(NSEnumerator*)objectEnumerator //返回集合中所有对象到一个NSEumerator类型的对象
-(BOOL)isSubsetOfSet:nsset //判断是否是一个集合nsset的子集
-(BOOL)intersectsSet:nsset //判断两个集合的交集是否存在至少一个元素
//或者:判断集合中是否至少有一个元素在nsset中
-(BOO)isEqualToSet:nsset //判断两个集合是相等
2、NSMutableSet常用方法:
-(id)setWithCapacity:size
-(id)initWithCapacity:size
-(void)addObject:obj //增加一个对象到集合中
-(void)removeObject:obj //从集合中删除对象obj
-(void)removeAllObjects //删除集合中所有的对象
-(void)unionSet:nsset //将nsset的所有元素增加到集合中,也就是求并集
-(void)minusSet:nsset //从集合中去掉所有nsset的元素
-(void)interectSet:nsset //集合和nsset做交集运算,也就是求交集
3、举例如下
/*******************************************NSSet****************************************************/
//NSSet没有顺序
NSSet *set1 = [NSSet set]; //创建集合
NSSet *set2 = [NSSet setWithObjects:@"first",@"second", nil]; //传多个元素初始化
[set2 anyObject]; //随机取出一个元素,因为他没有顺序所以不能写set2[1]
NSSet *set = [NSSet setWithObjects:@"25",@"age",@"张三",@"name",@"男",nil];
NSSet *set1 = [NSSet setWithObjects:@"25",@"age",@"张三",@"name",@"男",@"性别",nil];
NSLog(@"set count:%lu", [set count]);
//判断是否含有age字符串
if([set containsObject:@"age"]) {
NSLog(@"set包含age");
}
//判断set 是否等于set1
if ([set isEqualToSet:set1]) {
NSLog(@"set 等于 set1");
}
//判断set是否是否是set1的子集合
if ([set isSubsetOfSet:set1]) {
NSLog(@"set isSubsetOfSet set1");
}
//获取所有set对象
NSArray *array = [set allObjects];
NSLog(@"array:%@", array);
//迭代遍历
NSEnumerator *enumerator = [set objectEnumerator];
for (NSObject *object in enumerator) {
NSLog(@"set1里的对象:%@", object);
}
/****************************************NSMutableSet****************************************************/
NSMutableSet *set3 = [NSMutableSet set];
// [set3 addObject:@"first"]; //添加元素
[set3 removeObject:@"first"]; //删除元素
[set3 removeAllObjects]; //删除所有元素