// 2016年07月19日17:50:53 集合
//七、NSSet 集合对象(容器类,)
// 1. 使用类方法创建对象
NSSet *set1 = [NSSet set]; // 创建一个空的集合对象
NSSet *set2 = [NSSet setWithObject:@"abc"];
NSSet *set3 = [NSSet setWithObjects:@"abc", @"aaa", @"bbb", nil];
NSLog(@"%@", set3);
NSArray *array = [NSArray arrayWithObjects:@"a",@"b", @"c", nil];
NSSet *set4 = [NSSet setWithArray:array]; // 使用数组创建
NSLog(@"%@", set4);
NSSet *set5 = [NSSet setWithSet:set4]; // 使用集合创建
NSLog(@"%@", set5);
// 2.使用实例方法创建
NSSet *set6 = [[NSSet alloc] init];
NSLog(@"%@", set6);
NSSet *set7 = [[NSSet alloc] initWithObjects:@"hello", @"hhaa", @"bbjdh", nil];
NSLog(@"%@", set7);
NSSet *set8 = [[NSSet alloc] initWithArray:array];
NSLog(@"%@", set8);
NSSet *set9 = [[NSSet alloc] initWithSet:set7];
NSLog(@"%@", set9);
// 3.返回几个元素个数
NSLog(@"%ld", [set7 count]);
// 4.枚举器访问集合元素
NSEnumerator *enumerator = [set7 objectEnumerator];
NSString *str = nil;
while (str = [enumerator nextObject]) {
NSLog(@"%@", str);
}
// 5.判断两个几个是否有交集
BOOL ifhasIntersection = [set2 intersectsSet:set3];
NSLog(@"%d", ifhasIntersection);
// 6.判断两个集合是否相等
NSLog(@"%d", [set2 isEqualToSet:set3]);
// 7.判断当前集合是否是子集
NSLog(@"%d", [set2 isSubsetOfSet:set3]);
//5.2可变集合 NSMutableSet
// 创建指定元素个数的一个集合对象
NSMutableSet *mutableSet = [NSMutableSet setWithCapacity:4];
[mutableSet addObject:@"aaa"];
NSLog(@"%@", mutableSet);
// 类方法创建可变集合
NSMutableSet *mutableSet1 = [NSMutableSet setWithObjects:@"aaa", @"bbb", @"ccc", nil];
NSMutableSet *mutableSet2 = [NSMutableSet setWithObject:@"aaa"];
// 添加一个对象到集合
[mutableSet2 addObject:@"ddd"];
NSLog(@"%@", mutableSet2);
// 从集合中删除一个对象
[mutableSet2 removeObject:@"ddd"];
NSLog(@"%@", mutableSet2);
// 把数组对象添加到集合对象中
NSArray *arr10 = [NSArray arrayWithObjects:@"eee", @"fff", nil];
[mutableSet1 addObjectsFromArray:arr10];
NSLog(@"%@", mutableSet1);
// 得到两个集合的交集 注意intersectSet和intersectsSet的区别,后者是判断是否有交集的方法, 返回的是bool值
[mutableSet1 intersectSet:mutableSet2];
NSLog(@"%@", mutableSet1);
// 从一个集合中减去另一个集合
[mutableSet1 minusSet:mutableSet2];
NSLog(@"%@", mutableSet1);
// 从一个元素中删除所有元素
[mutableSet2 removeAllObjects];
NSLog(@"%@", mutableSet2);
// 取两个集合的并集
[mutableSet1 unionSet:mutableSet2];
NSLog(@"%@", mutableSet1);
NSLog(@"%@", mutableSet1);
// 设置给集合赋值
[mutableSet1 setSet:mutableSet2];
NSLog(@"%@", mutableSet1);