zoukankan      html  css  js  c++  java
  • 集合(十二)

    集合

    这里说得集合与collection集合有区别。iOS中用得集合是NSSet和NSMutableSet。

    集合存储的数不能重复,元素必须唯一。存储的元素是无序的。存储的元素必须是对象类型的。

    不可变集合NSSet

    初始化initWithObjects:

    NSSet *set1 = [[NSSet alloc] initWithObjects:@"A",@"B",@"C", nil];//也是按照哈希排放的顺序

            NSLog(@"%@",set1);/*

                               2015-04-17 15:23:35.379 OCLesson5_字典[1725:95222] {(

                               A,

                               B,

                               C

                               )}

                               */

    与数组类似,往集合里边放东西,以nil作为结束标志。

    取值member:

            NSString *s111 = [set1 member:@"A"];

            NSLog(@"%@",s111);//2015-04-17 15:26:41.712 OCLesson5_字典[1742:96222] A

    member:@"A",若集合里,有@”A”元素,则返回这个元素A

    取值:anyObject:

    这里说是取集合里的任意一个元素,其实在存储元素的时候,按照hash算法算好后的顺序存放后,取第一个数。

            //anyObject:一般是按照哈希排放的顺序后拿第一个

            NSString *s222 = [set1 anyObject];

            NSLog(@"%@",s222);

    是否包含:containsObject

            //是否包含

            BOOL b1 = [set1 containsObject:@"A"];

            NSLog(@"%d",b1);//2015-04-17 15:35:03.398 OCLesson5_字典[1814:98775] 1

    可变集合NSMutableSet

            //NSmutableSet(可变)

            NSMutableSet *mSet1 = [NSMutableSet set];

            [mSet1 addObject:@"A"];

            [mSet1 addObject:@"B"];

            [mSet1 addObject:@"C"];

            [mSet1 addObject:@"A"];

            [mSet1 addObject:@"A"];

            NSLog(@"%@",mSet1);

    删除

            //删除

            [mSet1 removeObject:@"A"];

            [mSet1 removeAllObjects];

    获取元素个数

                    [mSet1 count];

    例子:

    NSCountedSet *cdSet1 = [[NSCountedSet alloc]init];

            [cdSet1 addObject:@"A"];

            [cdSet1 addObject:@"B"];

            [cdSet1 addObject:@"C1"];

            [cdSet1 addObject:@"A"];

            [cdSet1 addObject:@"A"];

            NSLog(@"%@",cdSet1);//2015-04-17 15:46:43.625 OCLesson5_字典[1917:102264] <NSCountedSet: 0x100300250> (A [3], B [1], C1 [1])

    获取一个元素在这个集合中出现的次数

            //元素在集合中的个数

            NSUInteger u11 = [cdSet1 countForObject:@"A"];

            NSLog(@"%lu",u11);//2015-04-17 15:48:17.239 OCLesson5_字典[1933:102823] 3

    for in快速遍历

    在for in括号内,in的后面是conllection集合(Array之类的),in 的前面是conllection集合里边的元素的类型,然后创建一个对象。

    NSArray的快速遍历

            //for in快速遍历

           

            NSArray *array = [NSArray arrayWithObjects:@"A",@"B",@"C",@"D", nil];

            //in后面是conlection容器类(集合),int前面的东西是in后面集合的元素类型,并创建一个对象

            //从容器里一个一个的往外拿。拿完为止。

            // in 后面是array数组(集合),数组里的元素都是NSString类型的,所以in前面就是NSString类型的。

            for (NSString *s in array) {

                NSLog(@"%@",s);/*

                                2015-04-17 15:54:59.243 OCLesson5_字典[1958:104217] A

                                2015-04-17 15:54:59.243 OCLesson5_字典[1958:104217] B

                                2015-04-17 15:54:59.243 OCLesson5_字典[1958:104217] C

                                2015-04-17 15:54:59.243 OCLesson5_字典[1958:104217] D

                                */

            }

    NSDictionary的快速遍历:

    NSDictionary的快速遍历,取出来的值是key,因为如果取出来的是value,那么key就永远取不出来了。

    NSDictionary *dict12 = [NSDictionary dictionaryWithObjectsAndKeys:@"AA",@"11",@"BB",@"22",@"CC",@"33", nil];

            //字典的快速便利取出的是key值

            //如果取出的是value,那么key永远都取不出来了。

            for (NSString *s in dict12) {

                NSLog(@"%@:%@",s,[dict12 objectForKey:s]);/*

                                                           2015-04-17 16:02:53.130 OCLesson5_字典[2005:106552] 33:CC

                                                           2015-04-17 16:02:53.130 OCLesson5_字典[2005:106552] 11:AA

                                                           2015-04-17 16:02:53.130 OCLesson5_字典[2005:106552] 22:BB

                                                           */

            }

            NSSet *set12 = [NSSet setWithObjects:@"A",@"B",@"C", nil];

            for (NSString *s in set12) {

                NSLog(@"%@",s);/*

                                2015-04-17 16:06:39.421 OCLesson5_字典[2023:107521] A

                                2015-04-17 16:06:39.421 OCLesson5_字典[2023:107521] B

                                2015-04-17 16:06:39.422 OCLesson5_字典[2023:107521] C

                                */

            }

  • 相关阅读:
    Web For Pentester 学习笔记
    Vulhub Docker环境部署
    XSS 渗透思路笔记
    文件上传Upload 漏洞挖掘思路
    文件上传Upload 学习笔记
    XCTF-WEB-高手进阶区-upload1-笔记
    XCTF-WEB-高手进阶区-PHP2-笔记
    XCTF-WEB-高手进阶区-NaNNaNaNNaN-Batman-笔记
    XCTF-WEB-高手进阶区-Web_python_template_injection-笔记
    用JavaScript制作简单的计算器
  • 原文地址:https://www.cnblogs.com/DevinSMR/p/5118600.html
Copyright © 2011-2022 走看看