Foundation中的NSSet和NSMutableSet


集合(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]; //删除所有元素




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值