首页 > 代码库 > 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