Objective-C中集合类
iOS中集合类与数学中的集合一样,集合中元素必须是唯一的,存储元素是无序的,存储元素必须是对象类型.
集合分为不可变集合(NSSet)和可变集合(NSMutableSet)
不可变集合(NSSet)
创建集合对象
1 1 NSSet *set = [NSSet setWithObjects:@"a", @"p", @"p", nil]; 2 2 NSLog(@"set: %@", set); 3 // 获取集合中元素个数 4 3 NSLog(@"count: %ld", set.count); 5 // 获取集合中某个元素 6 4 NSLog(@"object: %@", [set anyObject]);
因为集合总元素是唯一的,所以此时打印出的count值是2.
判断集合中是否包含某个对象
1 if ([set containsObject:@"a"]) { 2 NSLog(@"集合中包含该对象"); 3 } else { 4 NSLog(@"集合中不包含该对象"); 5 }
可变集合(NSMutableSet)
创建集合对象
1 NSMutableSet *mSet = [NSMutableSet set]; 2 // 添加元素 3 [mSet addObject:@"i"]; 4 [mSet addObject:@"O"]; 5 [mSet addObject:@"S"]; 6 NSLog(@"mSet: %@", mSet);
删除元素
1 // 删除 2 [mSet removeObject:@"i"]; 3 NSLog(@"mSet: %@", mSet);
计数集合 (NSCountedSet)
NSCountedSet是NSMutableSet的子类,能记录元素重复的次数,在set的基础上添加了计数功能.
1 // 创建集合 2 NSCountedSet *cSet = [NSCountedSet set]; 3 // 添加元素 4 [cSet addObject:@"a"]; 5 [cSet addObject: @"p"]; 6 [cSet addObject:@"p"]; 7 NSLog(@"cSet: %@", cSet); 8 NSLog(@"count: %ld", cSet.count); 9 // 元素在集合中被添加的次数 10 NSLog(@"count: %ld", [cSet countForObject:@"p"]);