NSSet的使用及常用方法(如初始化、并集、交集、删除、添加、修改等)
1 set集合中一种
2 set是无序(不像array那样有顺序),例如:元素分别是@"1", @"2", @"3",实际显示时,可能是@"1", @"3", @"2",或@"2", @"3", @"1"这样无充的
2 set是无序(不像array那样有顺序),例如:元素分别是@"1", @"2", @"3",实际显示时,可能是@"1", @"3", @"2",或@"2", @"3", @"1"这样无充的
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);
声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。
