3 set中元素是不可重复的
// 不可变set
// 实例化
NSSet *set001 = [[NSSet alloc] initWithObjects:@"1", @"2", @"3", @"4", nil];
NSLog(@"set001 = %@", set001);
// 属性
// 1 个数
NSInteger count = set001.count; // 方法1 点语法
//NSInteger count = [set001 count]; // 方法2 中括号法
NSLog(@"count = %ld", count);
// 2 转换成array
// set转换成array
NSArray *array = set001.allObjects;
NSLog(@"array = %@", array);
// array转换成set
NSSet *set002 = [NSSet setWithArray:@[@"1", @"3", @"7"]];
NSLog(@"set002 = %@", set002);
// 3 获取任意一对象
NSString *string = set002.anyObject;
NSLog(@"anyObj :%@", string);
// 比较
// 1 判断两个set是否相等
BOOL isEqual = [set001 isEqualToSet:set002];
if (isEqual)
{
NSLog(@"set001 等于 set002");
}
else
{
NSLog(@"set001 不等于 set002");
}
// 2 判断 setA 是否是 setB 的子集
BOOL isSub = [set002 isSubsetOfSet:set001];
if (isSub)
{
NSLog(@"set002 是 set001 的子集");
}
else
{
NSLog(@"set002 不是 set001 的子集");
}
// 3 判断两个set是否有交集
BOOL isIntersets = [set002 intersectsSet:set001];
if (isIntersets)
{
NSLog(@"set002 与 set001 有交集");
}
else
{
NSLog(@"set002 与 set001 无交集");
}
// 4 是否包含某个对象
BOOL isContains = [set002 containsObject:@"8"];
if (isContains)
{
NSLog(@"set002 包含 8");
}
else
{
NSLog(@"set002 不包含 8");
}
// 可变的set
NSMutableSet *set003 = [NSMutableSet setWithObjects:@"01", @"03", @"05", @"07", nil];
NSLog(@"set003 = %@", set003);
// 添加元素
// 方法1 添加单个元素
[set003 addObject:@"000"];
NSLog(@"set003 = %@", set003);
// 方法2 从指定数组中添加多个元素
NSArray *array003 = @[@"111", @"222"];
[set003 addObjectsFromArray:array003];
NSLog(@"set003 = %@", set003);
// 方法3 从指定set中添加多个元素
[set003 intersectsSet:set002];
NSLog(@"set003 = %@", set003);
// 删除元素
// 1 删除批定指定
[set003 removeObject:@"111"];
NSLog(@"set003 = %@", set003);
// 2 删除所有元素
[set003 removeAllObjects];
NSLog(@"set003 = %@", set003);
// 重新初始化set值
[set003 setSet:set002];
NSLog(@"set003 = %@", set003);
// 去掉相同的元素,即set003 去掉与 set001 中相同的元素,保留不同的元素
[set003 minusSet:set001];
NSLog(@"set003 = %@", set003);
// 并集,即两个集合组成一个集合
[set003 unionSet:set001];
NSLog(@"set003 = %@", set003);