集合(NSSet)
NSSet 类是一组单值对象的集合,而且 NSSet 对象中元素是无序的,同一个对象只能保存一个,并且,他也分为可变 (NSSet) 和不可变 (NSMutableSet) 两种。
不可变集合(NSSet)
1.创建一个不可变集合
NSSet *set1 = [NSSet setWithObjects:@"6",@"8",@"10", nil];
NSSet *set2 = [[NSSet alloc] initWithSet:set1];
NSSet *set3 = [[NSSet alloc] initWithArray:array];
NSSet *set4 = [NSSet setWithArray:array];
NSSet *set5 = [[NSSet alloc] initWithObjects:@"one",@"two",@"three", nil];
2.集合对象的长度
NSInteger count = [set2 count];
3.将集合转换为数组
NSArray *array = [set1 allObjects];
4.获取集合中的任意一个对象
id object = [set3 anyObject];
5.获取所有集合元素
NSArray *array = [set allObjects];
6.通过已有集合 1 和集合 2 创建新集合 3
NSSet *set3 = [set1 setByAddingObjectsFromSet:set2];
7.通过已有集合与数组对象创建新集合
NSSet *set2 = [set1 setByAddingObjectsFromArray:array];
8.判断集合中是否包含某个字符串,包含返回 YES,不包含返回 NO
BOOL isContain = [set containsObject:@"abc"];
9.判断两个集合中是否存在相同的元素
BOOL isIntersect = [set intersectsSet:set2];
10.判断两个集合是否完全相同
BOOL isEqual = [set4 isEqual:set1];
11.判断一个集合是否是另一个集合的子集
BOOL isSubset = [set4 isSubsetOfSet:set2];
可变集合(NSMutableSet)
1.创建一个可变集合
//创建一个长度为 6 的可变集合
NSMutableSet *set1 = [NSMutableSet setWithCapacity:6];
NSMutableSet *set2 = [NSMutableSet set];
NSMutableSet *set3 = [NSMutableSet setWithObjects:@"1",@"2", nil];
NSMutableSet *set4 = [NSMutableSet setWithObjects:@"a",@"2", nil];
NSMutableSet *set5 = [NSMutableSet setWithObjects:@"1",@"b", nil];
2.获取两个集合中元素的交集
[set1 intersectSet:set2];
3.获取两个集合中元素的并集
[set2 unionSet:set3];
4.删除一个指定对象
[set1 removeObject:@"1"];
5.删除集合所有元素
[set1 removeAllObjects];
6.像集合中删除一个集合的所有数据
[set minusSet:obj];
集合的遍历
使用 objectEnumerator 进行遍历
NSEnumerator *enumerator = [set objectEnumerator];
for (NSObject *object in enumerator) {
NSLog(@"set:%@", object);
}