首页 > 代码库 > OC 第七天 集合 lesson7
OC 第七天 集合 lesson7
NSSet 常用方法
集合类似一个罐子,一旦把对象“丢进”NSSet集合,集合里多个对象之间没有明显的顺序. NSSet按Hash算法来存储集合中的元素,因此有很好的存取和查找性能.
1.创建集合对象。
<span style="font-size:18px;"> NSSet *nanShen = [NSSet setWithObjects:@"曹大哥", @"david", @"洁哥", @"洁哥",nil]; NSLog(@"%@",nanShen);</span>
NSSet集合中不允许包含相同的元素,两个相同的元素放进去,结果只能保存一个元素.
运行结果:
2014-09-20 09:00:16.615 oc07_集合[520:303] {(
"\U6d01\U54e5",
david,
"\U66f9\U5927\U54e5"
)}
2.获取元素个数。
<span style="font-size:18px;">NSLog(@"%lu", [nanShen count]);</span>运行结果:
2014-09-20 08:52:20.931 oc07_集合[447:303] 3
3.获取集合中的某个元素。
<span style="font-size:18px;"> NSLog(@"%@",[nanShen anyObject]);</span>
2014-09-20 09:01:01.002 oc07_集合[531:303]洁哥
4.判断集合中是否包含某个对象。
<span style="font-size:18px;"> if ([nanShen containsObject:@"曹大哥"]) { NSLog(@"曹大哥是男神"); }</span>
运行结果:
2014-09-20 09:25:54.356 oc07_集合[627:303]曹大哥是男神
遍历:
for (NSString *name in nanShen) { NSLog(@"%@", name); }
运行结果:
2014-09-20 09:29:19.817 oc07_集合[639:303]洁哥
2014-09-20 09:29:19.817 oc07_集合[639:303] david
2014-09-20 09:29:19.817 oc07_集合[639:303]曹大哥
NSMutableSet 常用方法
1.创建集合对象。
<span style="white-space:pre"> </span>NSSet *nvShen = [NSSet setWithObjects:@"张恒", @"贵川", @"洁哥" ,nil]; NSMutableSet *ShenM = [NSMutableSet setWithSet:nvShen];2.关于对集合常用的基本操作:
addObject: 向集合中添加单个元素
removeObject: 从集合中删除单个元素
removeAllObjects删除集合中的所有元素
3.其他常用操作<strong>//并集</strong> [ShenM unionSet:nanShen]; for (NSString *name in ShenM) { NSLog(@"%@",name); } NSLog(@"------"); <strong>//子集</strong> if ([nvShen isSubsetOfSet:ShenM]) { NSLog(@"%@是%@的子集",nvShen,ShenM); } else { NSLog(@"%@不是%@的子集",nvShen,ShenM); } NSLog(@"- - - - -"); <strong>//交集</strong> [ShenM intersectSet:nanShen]; for (NSString *name in ShenM) { NSLog(@"%@",name); } NSLog(@"-1-1-1-1-1-");运行结果:
014-09-20 09:41:06.067 oc07_集合[678:303] 张恒
2014-09-20 09:41:06.067 oc07_集合[678:303] 洁哥
2014-09-20 09:41:06.067 oc07_集合[678:303] david
2014-09-20 09:41:06.068 oc07_集合[678:303] 曹大哥
2014-09-20 09:41:06.068 oc07_集合[678:303] 贵川
2014-09-20 09:41:06.069 oc07_集合[678:303] ------
2014-09-20 09:41:06.069 oc07_集合[678:303] {(
"\U6d01\U54e5",
"\U5f20\U6052",
"\U8d35\U5ddd"
)}是{(
"\U5f20\U6052",
"\U6d01\U54e5",
david,
"\U66f9\U5927\U54e5",
"\U8d35\U5ddd"
)}的子集
2014-09-20 09:41:06.070 oc07_集合[678:303] - - - - -
2014-09-20 09:41:06.070 oc07_集合[678:303] 洁哥
2014-09-20 09:41:06.070 oc07_集合[678:303] david
2014-09-20 09:41:06.071 oc07_集合[678:303] 曹大哥
2014-09-20 09:41:06.071 oc07_集合[678:303] -1-1-1-1-1-
OC 第七天 集合 lesson7