NSSet 和 NSMutableSet 定义和基本用法:
//===========================================================
/*
NSSet 集合,存储oc对象,int float double char,枚举,结构体,都不可以忘里面存储,必须包装成对象存进去。
NSSet 没有顺序,NSArray 有顺序的
相同:1:都用来存放oc对象
2:都不可以存放基本数据类型,int float double char,枚举,结构体。
3:本身都是不可变的,但是都有一个可变的子类
4:
区别: 1:NSArry是有顺序的,NSSet是没有顺序的
2:NSSet里面的元素是不可以重复的。
*/
//创建一个空的set,不可以添加元素。
NSSet *set1=[NSSet set];
//创建一个set集合,里面有一个元素。
NSSet *set2=[NSSet setWithObject:@"abc"];
//创建一个集合,里面放多个元素
Car *car1=[[Car alloc]init];
Car *car2=[[Car alloc]init];
NSSet *set3=[NSSet setWithObjects:car1,car2,@"ccc",nil];
//获得set 中的元素个数
NSUInteger count =set3.count;// [set count];
//打印set,没有顺序的打印,其中的元素位置不确定。
NSLog(@"%@,%lu",set3,count);
//获取set中全部元素
NSArray *ary1=[set3 allObjects];
NSLog(@"%@",ary1);
//取其中的一个元素,集合没有顺序。随机取一个对象即可
[set3 anyObject];
//集合中是否包含某个元素
if ([set3 containsObject:@"ccc"]) {
NSLog(@"set中包含该对象");
}
else{
NSLog(@"set中包含该对象");
}
//======================================================
//NSMutableSet 可变的集合
//初始化可变的集合
NSMutableSet * set4=[NSMutableSet set];
//添加元素
[set4 addObject:@"oc"];
//添加一个数组中的元素添加到集合中
[set4 addObjectsFromArray:@[@"jereh",@"ios"]];
NSLog(@"%@",set4);
//删除元素
//清空和某个固定对象
[set4 removeObject:@"ios"];
NSLog(@"%@",set4);
[set4 removeAllObjects];
NSLog(@"%@",set4);
//遍历set,for循环 -快速循环
NSMutableSet *set5=[NSMutableSet setWithObjects:@"ios",@"oc",@"c",nil];
for(id obj in set5){
NSLog(@"%@",obj);
}