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

 

posted @ 2015-03-01 11:35  苏叶  阅读(166)  评论(0编辑  收藏  举报