集合
1、集合和数组、字典类似,都只能存储不同类型的对象。
集合中的对象具有唯一性,即同一对象在集合中存储N次,集合只读取一次对象,可通过NSCountedSet中的方法countForObject:获取同一对象存储的个数。
数组可以存储多次同一对象。
字典可以存储多次同一对象,但是key值不能重复。
2、创建NSSet对象,同NSArray类似。
NSSet * set1 =[NSSet setWithObjects:@"yuanmei", @"wo", @"1314",nil];
NSLog(@"%@",set1);
NSSet * set2 =[NSSet setWithObjects:@"21", @"22", @"22", nil];
NSLog(@"%@",set2);
3、NSSet中的方法,和NSArray类似。
//获取元素个数
NSUInteger count =[set2 count];
NSLog(@"%lu",count);
//获取集合中的元素
NSLog(@"%@",[set1 anyObject]);//获取的元素不保证是随机的
NSLog(@"%@",[set2 allObjects]);
//判断是否包含某个元素
BOOL r = [set1containsObject:@"mei"];
NSLog(@"%d",r);
4、可变集合类型 NSMutableSet
NSMutableSet * set =[NSMutableSet set];
NSLog(@"%@",set);
//添加元素对象
[setaddObject:@"mei"];
NSLog(@"%@",set);
//移除元素对象
[setremoveObject:@"mei"];
NSLog(@"%@",set);
//移除全部元素对象
[setremoveAllObjects];
NSLog(@"%@",set);
5、NSCountedSet是NSMutableSet的子类
NSCountedSet * set =[NSCountedSet set];
[setaddObject:@"11"];
[setaddObject:@"12"];
[setaddObject:@"12"];
[setaddObject:@"12"];
NSLog(@"%@",set);
结果为:<NSCountedSet: 0x1001009b0> (12 [3], 11 [1])
NSUInteger count =[set countForObject:@"12"];
NSLog(@"%lu",count);
6、遍历集合
NSSet * set = [NSSetsetWithObjects:@"10", @"20", @"30", nil];
for (NSString * a inset) {
NSLog(@"%@", a);
}