首页 » IOS » iOS 集合类型 NSSet和NSMutableSet

iOS 集合类型 NSSet和NSMutableSet

原文 http://blog.csdn.net/z979451341/article/details/79093356

2018-01-19 02:01:27阅读(157)

集合有数据唯一、无序的特性。

NSSet是不变集合,就像NSString能够初始化的时候赋值,你能给他继承了NSObject类型的数据,像基础类型int、bool就不行,需要转换为NSNumber

NSSet操作如下

  NSSet *set1 = [NSSet setWithObjects:@"one",@"two",@"two",@"three",@"three",@"four",@"five",nil];
    NSSet *set2 = [NSSet setWithObjects:@"two",@"three",nil];
    
    NSLog(@"set1 count:%lu", [set1 count]);
    //判断是否含有one字符串
    if([set1 containsObject:@"one"]) {
        NSLog(@"set1包含one");
    }
    //判断set 是否等于set1
    if ([set1 isEqualToSet:set2]) {
        NSLog(@"set1 等于 set2");
    }
    //判断set是否是否是set1的子集合
    if ([set1 isSubsetOfSet:set2]) {
        NSLog(@"set1 包含了 set2");
    }
    //获取所有set对象,并转换为NSArray
    NSArray *array = [set1 allObjects];
    NSLog(@"array:%@", array);
    
    //迭代遍历
    NSEnumerator *enumerator = [set1 objectEnumerator];
    for (NSObject *object in enumerator) {
        NSLog(@"set1里的对象:%@", object);
    }
然后是NSMutableSet的使用方法,这个虽然是继承NSSet,能够使用NSSet所有公开函数,但是他使用 isEqualToSet  和isSubsetOfSet对NSMutableSet的时候没用,都是返回false,如果是NSSet函数就能够得到正确的结果

 NSMutableSet * muSet1 = [[NSMutableSet alloc]init];
    [muSet1 addObject:@"one"];
    NSSet *set3 = [NSSet setWithObjects:@"one",@"two",@"two",@"three",@"three",@"four",@"five",nil];
    //添加set数据
    [muSet1 unionSet:set3];
    for (NSObject *object in muSet1) {
        NSLog(@"muSet1:%@",object);
    }
    NSLog(@"--------------------");
    NSSet *set4 = [NSSet setWithObjects:@"two",@"three",@"six", nil];
    
    //在muSet中删除包含set1总数据
    [muSet1 minusSet:set4];
    for (NSObject *object in muSet1) {
        NSLog(@"muSet1:%@",object);
    }
    NSLog(@"--------------------");
    NSMutableSet * muSet2 = [[NSMutableSet alloc]init];
    [muSet2 addObject:@"one"];
    
    if([muSet1 containsObject:@"one"]){
        NSLog(@"muSet1 包含了 one");
    }
   
    if([muSet1 isEqualToSet:muSet2]){
        NSLog(@"muSet1 等于 muSet2");
    }
    
    if([muSet1 isSubsetOfSet: muSet2]){
        NSLog(@"muSet1 包含了 muSet2");
    }




最新发布

CentOS专题

关于本站

5ibc.net旗下博客站精品博文小部分原创、大部分从互联网收集整理。尊重作者版权、传播精品博文,让更多编程爱好者知晓!

小提示

按 Ctrl+D 键,
把本文加入收藏夹