Objective-C 基礎知識之(八):NSSet
集合
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);
}