一、概念
名称为集合,存放着不可重复对象的集合,集合中对象是无序的。
二、NSSet基本用法
// 初始化集合的几种方式
NSSet* setArray = [NSSet setWithArray:@[@"mm", @"jj", @"zz"]];
NSSet* setObject = [NSSet setWithObject:@"hello"];
NSSet* setObjects = [NSSet setWithObjects:@"hello", @"world", @"jj", nil];
NSSet* setSets = [NSSet setWithSet:setArray];
// 在原有的基础上拼接生成新的NSSet
NSSet* setAddObj = [setArray setByAddingObject:@"love"];
NSSet* setAddSet = [setObject setByAddingObjectsFromSet:setObjects];
NSSet* setAddArray = [setSets setByAddingObjectsFromArray:@[@"tt", @"yy", @"ss"]];
// 容器中值打印
for (id obj in setArray.objectEnumerator.allObjects) {
NSLog(@"当前对象:%@", obj);
}
BOOL isContain = [setArray containsObject:@"mm"]; // setArray中是否包含对象: "mm"
BOOL isEqual = [setObjects isEqualToSet:setArray]; // 两集合是否相等
BOOL isSubset = [setArray isSubsetOfSet:setObjects]; // setObjects是否是setArray子集合, 子集合setObjects中不仅值要相等,而且个数还要小于或等于前一个集合(setArray)数量
BOOL isIntersects = [setArray intersectsSet:setObjects]; // 返回YES:集合setObjects中至少含有setArray中一个对象
三、NSMutableSet用法
//NSMutableSet初始化集合的其它方式
NSMutableSet* setArray = [[NSMutableSet alloc] initWithArray:@[@"mm", @"jj", @"zz"]];
NSMutableSet* setObjects = [[NSMutableSet alloc] initWithObjects:@"hello", @"world", @"jj", nil];
NSMutableSet* setSets = [NSMutableSet setWithSet:setArray];
[setArray addObjectsFromArray:@[@"11", @"ss", @"jj", @"mm", @"zz"]]; // 添加对象
NSLog(@"%@", setArray);
NSMutableSet* setCapacity = [NSMutableSet setWithCapacity:2]; // 预估数量
[setCapacity addObject:@"11"]; // 添加对象
[setCapacity addObject:@"mm"]; // 添加对象
NSLog(@"%@", setCapacity);
/** 调试时可注释部分代码 **/
[setArray intersectSet:setCapacity]; // 生成两集合的交集
NSLog(@"%@", setArray);
[setArray unionSet:setCapacity]; // 生成两集合的并集
NSLog(@"%@", setArray);
[setArray minusSet:setCapacity]; // 生成去除和setCapacity重复元素后的集合
NSLog(@"%@", setArray);
[setArray removeAllObjects]; // 删除所有对象
NSLog(@"%@", setArray);
以上是对常用方法的说明,如有错误,望指正,多谢!!