字典简介:
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);
}