NSSet的使用及常用方法(如初始化、并集、交集、删除、添加、修改等)

1 set集合中一种
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);



  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

番薯大佬

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值