標籤:objective 集合 set mutableset countedset
直接上代碼:
/* * NSSet 不可變 集合 * */ // 兩種初始化方式 NSSet *set1 = [[NSSet alloc] initWithObjects:@"1", @"2", @"3", nil] ; NSLog( @"%@", set1 ) ; NSSet *set2 = [NSSet setWithObjects:@"12", @"23", @"34", nil] ; NSLog( @"%@", set2 ) ; //用數組對象來建立集合對象 NSArray *array = @[@1, @2, @2] ; //initWithArray 和 setWithArray 將數組對象轉換成集合對象,這樣能將數組中重複的對象過濾掉 NSSet *set3 = [[NSSet alloc] initWithArray:array] ; NSLog( @"%@", set3 ) ; NSSet *set4 = [NSSet setWithArray:array] ; NSLog( @"%@", set4 ) ; //擷取集合中對象的個數 NSLog( @"%ld", [set4 count] ) ; //擷取集合中的對象(返回的是任意一個對象,如果集合中沒有對象,則返回nil) id object1 = [set4 anyObject] ; NSLog( @"%@", object1 ) ; //判斷一個給定的對象是否包含在指定的集合中 NSString *result1 = [set4 containsObject:@2] ? @"YES" : @"NO" ; NSLog( @"%@ is contained int set %@", @2, result1 ) ;// @2 換成 @"2" 結果列印的是 NO// NSString *result1 = [set4 containsObject:@"2"] ? @"YES" : @"NO" ;// NSLog( @"%@ is contained int set %@", @"2", result1 ) ; /* * NSMutableSet 可變 集合 * */ //初始化 NSMutableSet *mutableSet1 = [[NSMutableSet alloc] init] ; NSLog( @"%@", mutableSet1 ) ; NSMutableSet *mutableSet2 = [NSMutableSet set] ; NSLog( @"%@", mutableSet2 ) ; //通過不可變對象建立 NSMutableSet *mutableSet3 = [[NSMutableSet alloc] initWithSet:set1] ; NSLog( @"%@", mutableSet3 ) ; NSMutableSet *mutableSet4 = [NSMutableSet setWithSet: set1] ; NSLog( @"%@", mutableSet4 ) ; //添加集合元素(注意:@4 和 @"4"不一樣) [mutableSet4 addObject:@4] ; NSLog( @"%@", mutableSet4 ) ; //刪除單個集合元素 [mutableSet4 removeObject:@4] ; NSLog( @"%@", mutableSet4 ) ; //刪除所有集合元素 [mutableSet4 removeAllObjects] ; NSLog( @"%@", mutableSet4 ) ; /* * NSCountedSet * * 是 NSSet的子類,能記錄集合中的元素的重複次數 */ // NSCountedSet *countSet1 = [NSCountedSet set] ; [countSet1 addObject:@1] ; [countSet1 addObject:@2] ; [countSet1 addObject:@3] ; [countSet1 addObject:@2] ; NSLog( @"%@", countSet1 ) ; //單獨擷取某個對象在集合中出現過多少次// NSLog( @"%ld", [countSet1 countOfObjc:@3] ) ; NSLog( @"%ld", [countSet1 countForObject:@5] ) ;
Objective-C----NSSet 、 NSMutableSet 、 NSCountedSet