//NSSet集合对象
//NSSet在存储对象时不是连续存储的,也不是顺序存储的
//NSSet使用散列表(hash table)的技术存储对象的,便于对对象查找对象可以一次命中
NSArray *array = [NSArrayarrayWithObjects:@1,@2,@3, nil];
NSSet *set = [NSSetsetWithObjects:@1,@3, nil];
NSSet *set2 = [NSSetsetWithArray:array];
[array enumerateObjectsUsingBlock:^(id _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) {
NSLog(@"idx = %lu,obj = %@",idx,obj);
}];
[set enumerateObjectsUsingBlock:^(id _Nonnull obj, BOOL * _Nonnull stop) {
NSLog(@"obj = %@",obj);
}];
//NSMutableSet可变的集合对象
//NSSet中不能存储重复的对象
NSMutableSet *set3 = [[NSMutableSetalloc]init];
[set3 addObject:@1];
[set3 addObject:@2];
[set3 addObject:@3];
//[set3 removeObject:@2];
[set3 enumerateObjectsUsingBlock:^(id _Nonnull obj, BOOL * _Nonnull stop) {
NSLog(@"obj = %@",obj);
}];
//可以判断一个对象在集合中
if ([set3 containsObject:@2]) {
NSLog(@"2在set3 里面");
}
id obj4 = [set3 member:@2];
NSLog(@"%@",obj4);
//集合之间可以做集合运算
//1、将集合中两个相同的元素去掉
[set3 minusSet:set];
NSLog(@"%@",set3);
//2、求集合的并集
[set3 unionSet: set];
NSLog(@"%@",set3);
//3、求两个集合的交集
[set3 intersectSet:set];
NSLog(@"%@",set3);
//判断一个集合是否包含另一个集合
if ([set3 isSubsetOfSet:set]) {
NSLog(@"set is subset of set3");
}
//NSSet在存储对象时不是连续存储的,也不是顺序存储的
//NSSet使用散列表(hash table)的技术存储对象的,便于对对象查找对象可以一次命中
NSArray *array = [NSArrayarrayWithObjects:@1,@2,@3, nil];
NSSet *set = [NSSetsetWithObjects:@1,@3, nil];
NSSet *set2 = [NSSetsetWithArray:array];
[array enumerateObjectsUsingBlock:^(id _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) {
NSLog(@"idx = %lu,obj = %@",idx,obj);
}];
[set enumerateObjectsUsingBlock:^(id _Nonnull obj, BOOL * _Nonnull stop) {
NSLog(@"obj = %@",obj);
}];
//NSMutableSet可变的集合对象
//NSSet中不能存储重复的对象
NSMutableSet *set3 = [[NSMutableSetalloc]init];
[set3 addObject:@1];
[set3 addObject:@2];
[set3 addObject:@3];
//[set3 removeObject:@2];
[set3 enumerateObjectsUsingBlock:^(id _Nonnull obj, BOOL * _Nonnull stop) {
NSLog(@"obj = %@",obj);
}];
//可以判断一个对象在集合中
if ([set3 containsObject:@2]) {
NSLog(@"2在set3 里面");
}
id obj4 = [set3 member:@2];
NSLog(@"%@",obj4);
//集合之间可以做集合运算
//1、将集合中两个相同的元素去掉
[set3 minusSet:set];
NSLog(@"%@",set3);
//2、求集合的并集
[set3 unionSet: set];
NSLog(@"%@",set3);
//3、求两个集合的交集
[set3 intersectSet:set];
NSLog(@"%@",set3);
//判断一个集合是否包含另一个集合
if ([set3 isSubsetOfSet:set]) {
NSLog(@"set is subset of set3");
}