zoukankan      html  css  js  c++  java
  • NSSet和NSMutableSet

    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); 
    此类用到的比较少,但依然要了解下 !
  • 相关阅读:
    解释机器学习模型的一些方法(一)——数据可视化
    机器学习模型解释工具-Lime
    Hive SQL 语法学习与实践
    LeetCode 198. 打家劫舍(House Robber)LeetCode 213. 打家劫舍 II(House Robber II)
    LeetCode 148. 排序链表(Sort List)
    LeetCode 18. 四数之和(4Sum)
    LeetCode 12. 整数转罗马数字(Integer to Roman)
    LeetCode 31. 下一个排列(Next Permutation)
    LeetCode 168. Excel表列名称(Excel Sheet Column Title)
    论FPGA建模,与面向对象编程的相似性
  • 原文地址:https://www.cnblogs.com/sixindev/p/4469151.html
Copyright © 2011-2022 走看看