• [Objective-C] 010_Foundation框架之NSSet与NSMutableSet


    在Cocoa Foundation中的NSSet和NSMutableSet ,和NSArray功能性质一样,用于存储对象属于集合。但是NSSet和NSMutableSet是无序的, 保证数据的唯一性,当插入相同的数据时,不会有任何效果。

    NSSet 初始化及常用操作

    #import "AppDelegate.h"
    
    @interface AppDelegate ()
    
    @end
    
    @implementation AppDelegate
    
    - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    
        NSSet *students = [NSSet setWithObjects:@"小明", @"小辉", @"大雄", nil];
        NSSet *teachers = [[NSSet alloc] initWithObjects:@"校长", @"副校长", @"政教主任", nil];
        NSArray *array = [NSArray arrayWithObjects:@"小明", @"小辉", @"大雄",@"小李", nil];
        NSSet *students_2 = [NSSet setWithArray:array];
        
        NSLog(@"students :%@", students);
        NSLog(@"teachers :%@", teachers);
        NSLog(@"students_2 :%@", students_2);
        
        //获取集合students包含对象的个数
        NSLog(@"students count :%lu", (unsigned long)students.count);
        
        //以数组的形式获取集合teachers中的所有对象
        NSArray *allTeacher = [teachers allObjects];
        NSLog(@"allObj :%@", allTeacher);
        
        //获取teachers中任意一对象
        NSLog(@"anyObj :%@", [teachers anyObject]);
        
        //teachers是否包含某个对象
        if ([teachers containsObject:@"副校长"]) {
            NSLog(@"teachers中有副校长");
        }
        
        //是否包含指定set中的对象
        if ([students_2 intersectsSet:students]) {
            NSLog(@"intersects");
        }
        
        //是否完全匹配
        if ([students_2 isEqualToSet:students]) {
            NSLog(@"完全匹配");
        }else{
            NSLog(@"完全匹配? NO。。。。。。。");
        }
        
        //是否是子集合
        if ([students isSubsetOfSet:students_2]) {
            NSLog(@"students isSubsetOf students_2");
        }
        
        //迭代器遍历
        NSEnumerator *enumerator = [teachers objectEnumerator];
        NSObject *teacher  = [enumerator nextObject];
        while (teacher != nil) {
            NSLog(@"teachers中的数据: %@",teacher);
            teacher = [enumerator nextObject];
        }
        
        //快速枚举遍历
        for (NSObject *teacher in teachers) {
            NSLog(@"teachers中的数据: %@",teacher);
        }
        
        return YES;
    }
    
    @end
    

    NSMutableSet 初始化及常用操作

    #import "AppDelegate.h"
    
    @interface AppDelegate ()
    
    @end
    
    @implementation AppDelegate
    
    - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
        
        NSMutableSet *mutableStudent = [NSMutableSet setWithObjects:@"F1", @"F2", @"F3", nil];
        NSMutableSet *mutableTeacher = [NSMutableSet setWithObjects:@"B1", @"B2", @"B3", nil];
        NSMutableSet *mutableStudent2 = [NSMutableSet setWithObjects:@"F1", @"F2", @"F3",@"F4", nil];
        
        //集合元素相减
        [mutableStudent2 minusSet:mutableStudent];
        NSLog(@"mutableStudent2 minus mutableStudent:%@", mutableStudent2);
        
        //mutableStudent2只留下相等元素
        [mutableStudent intersectSet:mutableStudent2];
        NSLog(@"intersect :%@", mutableStudent2);
        
        //mutableStudent合并集合
        [mutableStudent unionSet:mutableStudent2];
        NSLog(@"union :%@", mutableStudent);
        
        //mutableTeacher删除指定元素
        [mutableTeacher removeObject:@"好色仙人"];
        NSLog(@"removeObj :%@", mutableTeacher);
        
        //mutableTeacher删除所有数据
        [mutableTeacher removeAllObjects];
        NSLog(@"removeAll :%@", mutableTeacher);
        
        return YES;
    }
    
    @end
    

     

    本站文章为 宝宝巴士 SD.Team 原创,转载务必在明显处注明:(作者官方网站: 宝宝巴士 
    转载自【宝宝巴士SuperDo团队】 原文链接: http://www.cnblogs.com/superdo/p/4623082.html

     

  • 相关阅读:
    c++中的peek函数
    的坑
    Haroopad 写 markdown文本
    《剑指offer》第五十题(字符流中第一个只出现一次的字符)
    《剑指offer》第五十题(字符串中第一个只出现一次的字符)
    《剑指offer》第四十九题(丑数)
    《剑指offer》第四十八题(最长不含重复字符的子字符串)
    《剑指offer》第四十七题(礼物的最大价值)
    《剑指offer》第四十六题(把数字翻译成字符串)
    《剑指offer》第四十五题(把数组排成最小的数)
  • 原文地址:https://www.cnblogs.com/superdo/p/4623082.html
Copyright © 2020-2023  润新知