博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
我的iOS学习历程 - OC第五天
阅读量:5124 次
发布时间:2019-06-13

本文共 4333 字,大约阅读时间需要 14 分钟。

今天主要讲的是字典的应用,其次讲了集合(主要在于字典)

配套练习

                                      main函数

字典是一个容器跟数组一样可以保存数据,保存的形式是以键值对的形式保存

key:

      1.一个key对应一个value

      2.keyValue必须是对象

      3.key作为钥匙要具有唯一性在开发中一般使用字符串作为key

value:

      1.value可以是一个很复杂的结构例如字典里再套一个字典

      2.字典里保存的键值对是无序的

不可变字典切记不能对不可变字典进行增删    

      用两个数组来初始化一个不可变字典

key的数组    

NSArray *keys = @[@"name",@"sex",@"age"];

values的数组

NSArray *values =@[@"wanglong",@"man",@"18"];NSDictionary *dic = [NSDictionary dictionaryWithObjects:values forKeys:keys];NSLog(@"%@",dic);
自定义初始化方法

    NSDictionary *dic = [[NSDictionary alloc]initWithObjects:values forKeys:keys];

初始化一个字典

      使用该方法初始化切记value : key顺序

NSDictionary *dic = [NSDictionary dictionaryWithObjectsAndKeys:                        @"wanglong",@"name",                        @"man",@"sex",                        @"18",@"age",                        nil];NSLog(@"%@",dic);// 把所有key取出来NSArray *key = [dicallKeys];NSLog(@"%@",key);NSDictionary *dic = [[NSDictionary alloc]initWithObjectsAndKeys:    @"wanglong",@"name",    @"nan",@"sex",    @"18",@"age",    nil];NSLog(@"%@",dic);// 取出所有valueNSArray *value = [dicallValues];
    

语法糖

    初始化顺序 key : value(与其他几种初始化方法相反)

NSDictionary *dic =@{@"name":@"wanglong",@"sex":@"nan",@"age":@"18"};NSLog(@"%@",dic);

根据key取出字典中的value

要知道你取出的是什么类型就用什么类型去接收他

NSString *value = [dic objectForKey:@"name"];NSLog(@"%@",value);    // 语法糖 取出字典中key对应的valueNSString *age = dic[@"age"];NSLog(@"%@",age);    // 获取字典的元素个数NSLog(@"%lu",[diccount]);

********************************************************************************

                                                                              可变字典

初始化一个空字典

      切记:必须进行初始化才能使用字典

NSMutableDictionary *dic = [NSMutableDictionary dictionary];    // 初始化的时候 给一个建议的容量 (初始化一个空字典)NSMutableDictionary *dic1 = [[NSMutableDictionaryalloc]initWithCapacity:10];NSMutableDictionary *dic = [[NSMutableDictionary alloc]init];    // 添加键值对[dic setObject:@"wanglong" forKey:@"name"];[dic setObject:@"nan" forKey:@"sex"];[dic setObject:@"age" forKey:@"18"];NSLog(@"%@",dic);[dic removeObjectForKey:@"sex"];NSLog(@"%@",dic);    // 删除所有键值对[dic removeAllObjects];NSLog(@"%@",dic);

练习:创建字典,管理前三排学生,每排为一组并输出

NSMutableArray *array1 = [NSMutableArray arrayWithObjects:@"血样",@"赵姐",@"张文",@"壮壮",nil];NSMutableArray *array2 = [NSMutableArrayarrayWithObjects:@"大君",@"听听",@"之言",@"兵器",nil];NSMutableArray *array3 = [NSMutableArrayarrayWithObjects:@"z",@"a",@"s",@"d",nil];NSMutableDictionary *dic = [[NSMutableDictionary alloc]init];[dic setObject:array1 forKey:@"第一排"];[dic setObject:array2 forKey:@"第二排"];[dic setObject:array3 forKey:@"第仨排"];NSLog(@"%@",dic);
    

创建一个字典姓名:王龙性别:年龄:18把各个信息打印出来(如果整个打印暂时没法打印文字)

NSMutableDictionary *dic = [[NSMutableDictionary alloc]initWithObjectsAndKeys:                               @"王龙",@"姓名",@"男",@"性别",@"18",@"年龄" ,nil];// 获取所有的keyNSArray *array = [dicallKeys];for (int n =0; n < [array count]; n++) {        // 取出每一个key        NSString *key = array [n];        NSString *value = dic[key];        // 打印一下        NSLog(@"%@ = %@  ",key,value);}
 

快速遍历

    for (填容器里对象的类型例如(NSString *str)in要遍历的容器(数组或字典)) {

        NSLog(@"%@",str);

    }

使用快速遍历forin

1.遍历字典是遍历的字典中的所有key

2.遍历数组是遍历数组中的每一个元素

NSMutableDictionary *dic = [[NSMutableDictionary alloc]initWithObjectsAndKeys:                                               @"王龙",@"姓名",@"男",@"性别",@"18",@"年龄" ,nil];for (NSString *objin dic) {// 用所有key取出valueNSLog(@"%@:%@",obj,dic[obj]);}

                                                                       集合:无序不重复

1.不可变集合

      三种初始化方法

[NSSet *set = [NSSet set];NSSet *set1 = [NSSet setWithObjects:@"d",nil];NSSet *set2 = [NSSet setWithArray:NSArray *];NSSet *set = [[NSSet alloc]initWithObjects:@"1",@"2",@"3",@"2",@"4",nil];// 获取长度NSLog(@"%lu",[set count]);NSLog(@"%@",set);// 获取集合中的一个元素// 返回一个计算机认为最合理的一个元素NSString *str = [set anyObject];NSLog(@"%@",str);

2.
可变集合

初始化空的集合

NSMutableSet *set = [NSMutableSet set];// 添加元素[set addObject:@"2"];[set addObject:@"2"];[set addObject:@"3"];[set addObject:@"4"];NSLog(@"%@",set);// 删除2元素[set removeObject:@"2"];NSLog(@"%@",set);// 删除所有元素[set removeAllObjects];NSLog(@"%@",set);

计算重复元素的个数的集合(可以用于计算以数组为参数初始化的集合数组重复的元素个数)如果计算的是普通的初始化方法的集合重复元素不管多少个都是1(countforobject)

componentsSeparatedBystring(切割字符串)

    

    

                                                                                 数组排序

1.不可变数组排序方法

NSArray *array = @[@"A",@"B",@"D",@"W",@"S"];NSArray *array1 = [array sortedArrayUsingSelector:@selector(compare:)];NSLog(@"%@",array1);
  

2.可变数组排序

不需要返回值 因为操作的是原数组

NSMutableArray *array = [NSMutableArray arrayWithObjects:@"1",@"3",@"7",@"5",nil];[array sortUsingSelector:@selector(compare:)];NSLog(@"%@",array);

转载于:https://www.cnblogs.com/888yf/p/4992724.html

你可能感兴趣的文章
python常用函数
查看>>
FastDFS使用
查看>>
服务器解析请求的基本原理
查看>>
[HDU3683 Gomoku]
查看>>
下一代操作系统与软件
查看>>
【iOS越狱开发】如何将应用打包成.ipa文件
查看>>
[NOIP2013提高组] CODEVS 3287 火车运输(MST+LCA)
查看>>
Yii2 Lesson - 03 Forms in Yii
查看>>
Python IO模型
查看>>
DataGridView的行的字体颜色变化
查看>>
Java再学习——关于ConcurrentHashMap
查看>>
如何处理Win10电脑黑屏后出现代码0xc0000225的错误?
查看>>
局域网内手机访问电脑网站注意几点
查看>>
[Serializable]的应用--注册码的生成,加密和验证
查看>>
Day19内容回顾
查看>>
第七次作业
查看>>
SpringBoot项目打包
查看>>
Linux操作系统 和 Windows操作系统 的区别
查看>>
《QQ欢乐斗地主》山寨版
查看>>
文件流的使用以及序列化和反序列化的方法使用
查看>>