[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

 

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

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

 

 

你可能感兴趣的:(Objective-C)