NSSet和NSMutableSet - By吴帮雷
阅读原文时间:2023年07月09日阅读:2

1、NSSet的使用

[NSSet setWithSet:(NSSet *)set]; 用另外一个set对象构造

[NSSet setWithArray:(NSArray *)array];用数组构造

[NSSet setWithObjects:…]:创建集合对象,并且初始化集合中的数值,结尾必需使用nil标志。

[set count] ; 得到这个结合对象的长度。

[set containsObject:…]: 判断这个集合中是否存在传入的对象,返回Bool值。

[set objectEnumerator]: 将集合放入迭代器。

[enumerator nextObject]:得到迭代器中的下一个节点数据,使用while遍历这个迭代器,方可遍历集合对象中的对象。

[set isEqualToSet:objset]:判断两个集合是否完全相等,返回Bool值。

[set isSubsetOfSet:objset]:判断集合中的所有数据是否都相等与objeset集合中,返回Bool值。

[set allObjects];

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);  
    }

2、NSMutableSet的使用

NSMutableSet继承NSSet,它可以使用NSSet的方法。

[NSMutableSet setWithCapacity:6]:创建可变集合对象,并且初始化长度为6。

[set addObject: obj] : 向集合中动态的添加对象。

[set removeObject:obj]:删除集合中的一个对象。

[set removeAllObjects]:删除集合中的所有对象。

[set unionSet:obj]:向集合中添加一个obj集合的所有数据。

[set minusSet:obj]:向集合中删除一个obj集合的所有数据。

[set intersectSet]:向集合中删除一个不包含obj集合的所有数据。

NSMutableSet *muSet = [NSMutableSet setWithCapacity:6];
[muSet addObject:@"对象1"];
NSSet *set = [NSSet setWithObjects:@"对象2",@"对象3", @"被企鹅咬了一口", nil];
//添加set数据
[muSet unionSet:set];
for (NSObject *object in muSet) {
NSLog(@"all nuSet:%@",object);
}
NSSet *set1 = [NSSet setWithObjects:@"对象2",@"对象3", nil];

    //在muSet中删除包含set1总数据  
    \[muSet minusSet:set1\];  
    for (NSObject \*object in muSet) {  
        NSLog(@"after minusSet:%@",object); 

此类用到的比较少,但依然要了解下 !

手机扫一扫

移动阅读更方便

阿里云服务器
腾讯云服务器
七牛云服务器

你可能感兴趣的文章