Objective-C----NSSet 、 NSMutableSet 、 NSCountedSet

直接上代码:

/*
         *  NSSet   不可变 集合
         *
         */

        // 两种初始化方式
        NSSet *set1 = [[NSSet alloc] initWithObjects:@"1", @"2", @"3", nil] ;
        NSLog( @"%@", set1 ) ;

        NSSet *set2 = [NSSet setWithObjects:@"12", @"23", @"34", nil] ;
        NSLog( @"%@", set2 ) ;

        //用数组对象来创建集合对象
        NSArray *array = @[@1, @2, @2] ;
        //initWithArray 和 setWithArray 将数组对象转换成集合对象,这样能将数组中重复的对象过滤掉
        NSSet *set3 = [[NSSet alloc] initWithArray:array] ;
        NSLog( @"%@", set3 ) ;
        NSSet *set4 = [NSSet setWithArray:array] ;
        NSLog( @"%@", set4 ) ;

        //获取集合中对象的个数
        NSLog( @"%ld", [set4 count] ) ;

        //获取集合中的对象(返回的是任意一个对象,如果集合中没有对象,则返回nil)
        id object1 = [set4 anyObject] ;
        NSLog( @"%@", object1 ) ;

        //判断一个给定的对象是否包含在指定的集合中
        NSString *result1 = [set4 containsObject:@2] ? @"YES" : @"NO" ;
        NSLog( @"%@ is contained int set %@", @2, result1 ) ;
//        @2  换成  @"2" 结果打印的是  NO
//        NSString *result1 = [set4 containsObject:@"2"] ? @"YES" : @"NO" ;
//        NSLog( @"%@ is contained int set %@", @"2", result1 ) ;

        /*
         *  NSMutableSet  可变 集合
         *
         */

        //初始化
        NSMutableSet *mutableSet1 = [[NSMutableSet alloc] init] ;
        NSLog( @"%@", mutableSet1 ) ;
        NSMutableSet *mutableSet2 = [NSMutableSet set] ;
        NSLog( @"%@", mutableSet2 ) ;
        //通过不可变对象创建
        NSMutableSet *mutableSet3 = [[NSMutableSet alloc] initWithSet:set1] ;
        NSLog( @"%@", mutableSet3 ) ;
        NSMutableSet *mutableSet4 = [NSMutableSet setWithSet: set1] ;
        NSLog( @"%@", mutableSet4 ) ;

        //添加集合元素(注意:@4 和 @"4"不一样)
        [mutableSet4 addObject:@4] ;
        NSLog( @"%@", mutableSet4 ) ;

        //删除单个集合元素
        [mutableSet4 removeObject:@4] ;
        NSLog( @"%@", mutableSet4 ) ;

        //删除所有集合元素
        [mutableSet4 removeAllObjects] ;
        NSLog( @"%@", mutableSet4 ) ;

        /*
         *   NSCountedSet 
         *
         *   是 NSSet的子类,能记录集合中的元素的重复次数
         */

        //
        NSCountedSet *countSet1 = [NSCountedSet set] ;
        [countSet1 addObject:@1] ;
        [countSet1 addObject:@2] ;
        [countSet1 addObject:@3] ;
        [countSet1 addObject:@2] ;
        NSLog( @"%@", countSet1 ) ;

        //单独获取某个对象在集合中出现过多少次
//        NSLog( @"%ld", [countSet1 countOfObjc:@3] ) ;
        NSLog( @"%ld", [countSet1 countForObject:@5] ) ;
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值