Cocoa Foundation 框架:NSSet集合的使用

/*
 * 不可变集合--NSSet
 */
// NSSet 初始化创建
// 直接创建一个集合

NSSet *set1 = [NSSet setWithObjects:@"1", @"2", nil];
NSSet *set2 = [[NSSet alloc] initWithObjects:@"3", @"4", @"2", nil];
NSLog(@"set1 : %@", set1);
NSLog(@"set2 : %@", set2);

// 通过数组的构建集合
NSArray *array1 = [NSArray arrayWithObjects:@"7", @"10", nil];
NSSet *set3 = [NSSet setWithArray:array1];
NSLog(@"set3 : %@", set3);

// 通过已有集合构建集合
NSSet *set4 = [NSSet setWithSet:set1];
NSLog(@"set4 : %@", set4);

// NSSet 常用方法
// 集合中的对象个数

NSInteger count = [set3 count];
NSLog(@"count : %d", count);

// 以数组的形式返回集合中的所有对象
NSArray *allObjects = [set3 allObjects];
NSLog(@"allObjects : %@", allObjects);

// 返回集合中的任意一个对象
id object = [set3 anyObject];
NSLog(@"object : %@", object);

// set4集合中是否包含内容为"2"的字符中对象,如果包含返回YES,否则为NO
BOOL isContain = [set4 containsObject:@"2"];
NSLog(@"isContain : %d", isContain);

// set4集合与set2集合是否存在有相同元素的对象,如果有返回YES,否则为NO
BOOL isIntersect = [set4 intersectsSet:set2];
NSLog(@"isIntersect : %d", isIntersect);

// set4集合与set3集合中的元素是否完全匹配,如果匹配返回YES,否则为NO
BOOL isEqual = [set4 isEqualToSet:set3];
NSLog(@"isEqual : %d", isEqual);

// set4集合是否是set3集合的子集合,如果是返回YES, 否则为NO
BOOL isSubset = [set4 isSubsetOfSet:set3];
NSLog(@"isSubset : %d", isSubset);

// 创建一个新的appSet1集合
NSSet *set5 = [NSSet setWithObjects:@"one", nil];
NSSet *appSet1 = [set5 setByAddingObject:@"Two"];
NSLog(@"appSet1 : %@", appSet1);

// 通过已有的set5集合和set3集合,创建一个新的集合
NSSet *appSet2 = [set5 setByAddingObjectsFromSet:set3];
NSLog(@"appSet2 : %@", appSet2);

// 通过已有的set5集合和array2数组,创建一个新的集合
NSArray *array2 = [NSArray arrayWithObject:@"end"];
NSSet *appSet3 = [set5 setByAddingObjectsFromArray:array2];
NSLog(@"appSet3 : %@", appSet3);


/*
 * 可变集合--NSMutableSet -- 继承自NSSet
 */
// 常用方法
//  创建一个空的集合

NSMutableSet *mutableSet1 = [NSMutableSet set];
NSMutableSet *mutableSet2 = [NSMutableSet setWithObjects:@"1", @"2", nil];
NSMutableSet *mutableSet3 = [NSMutableSet setWithObjects:@"a", @"2", nil];
NSLog(@"mutableSet1 : %@", mutableSet1);
NSLog(@"mutableSet2 : %@", mutableSet2);
NSLog(@"mutableSet3 : %@", mutableSet3);

// set2集合"减去"set3集合中的元素, set2集合最后元素只有1个,且为1
[mutableSet2 minusSet:mutableSet3];
NSLog(@"mutableSet2 minusSet : %@", mutableSet2);

// set2集合与set3集合中的元素交集, set2集合最后元素只有1个,且为2
[mutableSet2 intersectSet:mutableSet3];
NSLog(@"[mutableSet2 intersectSet:mutableSet3] : %@", mutableSet2);

// set2集合与set3集合中的元素并集, set2集合最后元素只有3个,且为1,2,a
[mutableSet2 unionSet:mutableSet3];
NSLog(@"[mutableSet2 unionSet:mutableSet3] : %@", mutableSet2);

// 清空set3集合设置为set3集合中的内容
[mutableSet1 setSet:mutableSet3];
NSLog(@"[mutableSet1 setSet:mutableSet3] : %@", mutableSet1);

// 通过数组向set2集合添加对象
[mutableSet2 addObjectsFromArray:array2];
NSLog(@"[set2 addObjectsFromArray:array2] : %@", mutableSet2);

// 根据数组的中容删除集合中的对象
[mutableSet2 removeObject:@"1"];
NSLog(@"[mutableSet2 removeObject] : %@", mutableSet2);

// 删除集合中的所有元素
[mutableSet2 removeAllObjects];
NSLog(@"[mutableSet2 removeAllObjects] : %@", mutableSet2);

你可能感兴趣的:(Cocoa Foundation 框架:NSSet集合的使用)