集合大家都學過,就是裏面的元素具有:確定性、無序性、互異性。
在OC中的集合主要理解的是後面的兩個性質。
另外,OC中的NSCountedSet集合可以統計元素在集合中出現的次數,是數學中集合的擴展。
全部源代碼爲:
#import <Foundation/Foundation.h> int main(int argc, const char * argv[]) { @autoreleasepool { //集合的特點 //1.集合是無序的 //2.集合中的元素都是互異的,不可以重複,如果有重複的元素,則識別爲一個元素 //1.創建一個NSSet對象 NSSet *set = [[NSSet alloc] initWithObjects:@"aa", @"bb", @"cc", @"dd", @"aa", nil]; NSLog(@"set: %@", set); //2.求集合元素個數 NSUInteger count = [set count]; NSLog(@"count = %lu", count); //3.獲得集合的元素 //(1)獲得全部元素 NSArray *members = [set allObjects]; NSLog(@"%@", members); //(2)獲得單一元素 //anyObject隨意取一個元素 NSString *str1 = [set anyObject]; NSString *str2 = [set anyObject]; NSString *str3 = [set anyObject]; NSString *str4 = [set anyObject]; NSLog(@"str = %@,%@,%@,%@", str1, str2, str3, str4); //4.判斷集合中是否包含某個對象。 BOOL have = [set containsObject:@"cc"]; NSLog(@"have = %d", have); //NSMutableSet //1.創建一個NSMutableSet對象 NSMutableSet *mSet = [[NSMutableSet alloc] initWithObjects:@"aa", @"bb", @"cc", @"cc", @"dd", nil]; //2.添加@"ff"到mSet集合中 [mSet addObject:@"ff"]; NSLog(@"mSet = %@", mSet); //3.移除掉@"cc" [mSet removeObject:@"cc"]; NSLog(@"remove:%@", mSet); //NSCountedSet NSCountedSet *cSet = [[NSCountedSet alloc] initWithObjects:@"aa", @"bb", @"cc", @"cc", @"dd", @"cc", @"dd", nil]; NSLog(@"cSet:%@", cSet); //移除@"cc", //removeObject: 對於NSCountedSet對象而言,移除只能移除一個對象,而對於NSMutableSet而言,移除會將所有相同的對象全部移除。 [cSet removeObject:@"cc"]; NSLog(@"remove:%@", cSet); //添加@"ff" //addObject:對於NSCountedSet對象而言,添加對象會增加對象在集合中出現的次數,而對於NSMutableSet而言,如果添加的對象已經存在於集合中,則不會再添加。 [cSet addObject:@"ff"]; [cSet addObject:@"dd"]; NSLog(@"add:%@", cSet); //獲得某個對象在集合中出現的次數 NSUInteger countInSet = [cSet countForObject:@"dd"]; NSLog(@"count = %lu", countInSet); //快速遍歷(快速枚舉) for (NSString *element in mSet) { NSLog(@"%@", element); } } return 0; }
本文介紹了OC中的基本集合、可變集合、可計數集合的相應的方法,希望對大家的學習有所幫助。