1. 程式人生 > >Objective-C 基礎知識之(八):NSSet

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);

}