OC视频笔记(不可变字典常用方法,与优化方法)(可变字典的常用方法)
2015-06-01 18:52
357 查看
字典简介:
Foundation中的字典(NSDictionary和NSMutableDictionary)是有键——值对组成的数据集合。正如我们在字典里查找单词的定义是一样的通过Key(键),查找相应的(Value)值,Key通常是字符串对象,也可以是其他任意类型的对象。在字典中,Key的值必须是唯一的。此外,字典的键和值不可以为空(nil),如果需要在一个字典中表示一个空值,可以使用NSNull对象。字典中的元素是无序的。
所以字典中的Key不能重复添加,如果传入的key相同但是value不同,那么编译器会将后传如的key的value替换掉之前key(两个key必须是相同的情况)对应的value值。
首先不可变字典:
例子中key是字符创,Value是数组
1.字典的创建:
1.1直接创建对象
NSDictionary *dic = 【【NSDictionary alloc】initWithObjectsAndKeys:array1,key1,array2,key2,nil】;(注意键值对的创建时,前面是值,后面是键。可以创建多对,本例就一对)
1.2根据类方法只想字典里面放一个键值对
NSDictionary *dic = 【NSDictionary dictionaryWithObject:array forKey:key】;
2.返回字典中元素个数
【dic count】(也可以用点语法)
3.获取字典里面所有的Key / Value
【dic allKeys】;(也可以用点语法)
【dic allValues】;(也可以用点语法)本例里面的value是数组,所以allValues方法返回的是一个二维数组,二维数组同样是数组对象。
NSArray * array = 【dic allValues】;(这么表示就行,现在array是一个二维数组)
4.通过Key获取Value
【dic objectForKey:key】;
字典的优化语法:
创建字典:
NSDictionary dic = @{key1:value1,key2:value2};(@大括号,键值中间加:,每个键值对中间用逗号隔开)
取value:
NSArray * array = dic【key】;
可变字典的常用方法:
创建:
1.指定空间:
NSMutableDictionary mdic = 【【NSMutableDictionary alloc】 initWithCapacity:数值】;
2.添加元素
2.1动态的添加元素
【mdic setObject:value forKey:key】;
2.2向一个字典里面添加另一个字典里面的元素
【mdic addEntriesFromDictionary:dic】;
3.删除
【mdic removeObjectForKey:key】;根据key删除元素
【mdic removeAllObjects】;清空
【mdic removeObjectForKeys:key1,key2】;
遍历字典:
快速遍历:
for(NSString* str in mdic){
NSArray *value = 【mdic objectForKey:key】;
NSLog(@“%@%@”,key,value);
}
普通遍历:
首先要得到key
NSArray *keys = 【mdic allKeys】;
for(int i = 0;i<keys.count;i++){
NSString *key = keys【i】;
NSArray *value = mdic【key】; //这两句都是利用了优化的语法
NSLog(@“%@%@”,key,value);
}
Foundation中的字典(NSDictionary和NSMutableDictionary)是有键——值对组成的数据集合。正如我们在字典里查找单词的定义是一样的通过Key(键),查找相应的(Value)值,Key通常是字符串对象,也可以是其他任意类型的对象。在字典中,Key的值必须是唯一的。此外,字典的键和值不可以为空(nil),如果需要在一个字典中表示一个空值,可以使用NSNull对象。字典中的元素是无序的。
所以字典中的Key不能重复添加,如果传入的key相同但是value不同,那么编译器会将后传如的key的value替换掉之前key(两个key必须是相同的情况)对应的value值。
首先不可变字典:
例子中key是字符创,Value是数组
1.字典的创建:
1.1直接创建对象
NSDictionary *dic = 【【NSDictionary alloc】initWithObjectsAndKeys:array1,key1,array2,key2,nil】;(注意键值对的创建时,前面是值,后面是键。可以创建多对,本例就一对)
1.2根据类方法只想字典里面放一个键值对
NSDictionary *dic = 【NSDictionary dictionaryWithObject:array forKey:key】;
2.返回字典中元素个数
【dic count】(也可以用点语法)
3.获取字典里面所有的Key / Value
【dic allKeys】;(也可以用点语法)
【dic allValues】;(也可以用点语法)本例里面的value是数组,所以allValues方法返回的是一个二维数组,二维数组同样是数组对象。
NSArray * array = 【dic allValues】;(这么表示就行,现在array是一个二维数组)
4.通过Key获取Value
【dic objectForKey:key】;
字典的优化语法:
创建字典:
NSDictionary dic = @{key1:value1,key2:value2};(@大括号,键值中间加:,每个键值对中间用逗号隔开)
取value:
NSArray * array = dic【key】;
可变字典的常用方法:
创建:
1.指定空间:
NSMutableDictionary mdic = 【【NSMutableDictionary alloc】 initWithCapacity:数值】;
2.添加元素
2.1动态的添加元素
【mdic setObject:value forKey:key】;
2.2向一个字典里面添加另一个字典里面的元素
【mdic addEntriesFromDictionary:dic】;
3.删除
【mdic removeObjectForKey:key】;根据key删除元素
【mdic removeAllObjects】;清空
【mdic removeObjectForKeys:key1,key2】;
遍历字典:
快速遍历:
for(NSString* str in mdic){
NSArray *value = 【mdic objectForKey:key】;
NSLog(@“%@%@”,key,value);
}
普通遍历:
首先要得到key
NSArray *keys = 【mdic allKeys】;
for(int i = 0;i<keys.count;i++){
NSString *key = keys【i】;
NSArray *value = mdic【key】; //这两句都是利用了优化的语法
NSLog(@“%@%@”,key,value);
}
相关文章推荐
- 网页html中嵌入特殊字体
- border-radius
- 后台收藏的好文章
- MFC六大核心机制之一:MFC程序的初始化
- 数学之美番外篇:平凡而又神奇的贝叶斯方法
- 执行环境及作用域
- hihoCoder hiho一下 第四十八周 题目1 : 拓扑排序·二
- nova quota
- Spring组件扫描<context:component-scan/>使用详解
- Hadoop cluster security 1: How to enable HDFS permission ACl
- c++ 设计模式之原型模式
- php查看mysql错误位置
- 猫猫学iOS(五十五)多线程网络之图片下载框架之SDWebImage
- 如何能够选到更适合自己的导师
- Shell脚本基本命令
- Android使用SeekBar时动态显示进度且随SeekBar一起移动
- 2015自然基金一审结果:项目申请的共性问题。
- jmap -histo pid 输出的[C [B [I [S methodKlass的含义
- 前向星
- 【linux】Ubuntu上的防火墙iptables的基本配置与使用