您的位置:首页 > 移动开发 > Objective-C

Objective-C 基础知识之(八):NSSet

2015-09-15 21:51 483 查看
集合

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);
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: