NSSet 和 NSMutableSet 定义和基本用法

本文介绍了NSSet和NSMutableSet在Objective-C中的定义和基本使用方法。NSSet是一个无序且不允许重复元素的集合,而NSMutableSet是其可变版本,支持添加、删除操作。通过实例展示了创建、检查元素、遍历集合等操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

NSSet 和 NSMutableSet  定义和基本用法:

 //===========================================================

         /*

         NSSet 集合,存储oc对象,int float double char,枚举,结构体,都不可以忘里面存储,必须包装成对象存进去。

         NSSet 没有顺序,NSArray 有顺序的

         

         相同:1:都用来存放oc对象

            2:都不可以存放基本数据类型,int float double char,枚举,结构体。

            3:本身都是不可变的,但是都有一个可变的子类

            4:

         区别:  1NSArry是有顺序的,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);

        }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值