//字典类
/*
字典用于保存具有映射关系(key-value)的数据集合
对于name:张三来讲,name就是key,key对应的value就是张三
一个key-value的组合被认为是一个条目,字典是存储key-value对容器
字典类的特点:
与数组不同,字典靠key存取元素(数组是通过下标来存取元素)
key不能重复,value必须是对象(如果不是对象用 NSNumber,NSValue)
键值对在字典中是无序存储的
字典也分可变字典和不可变字典
不可变字典:字典一旦创建,键值不能更改,不可添加,不可删除,仅能读取key或value
可变字典:字典创建后,键值可以更改,可以添加,可以删除,也能读取key或value
字典中元素是成对出现的,不能出现单数个(键值对键值对,有键有值是一对)
吃饭睡觉打键盘
*/
//创建字典 NSDictionary
NSDictionary *dic = [[NSDictionaryalloc]initWithObjectsAndKeys:
@"BenZ",@"car1",
@"zhang",@"car2",
@"吃饭",@"car3",
@"睡觉",@"car4",
@"打豆豆",@"car5",
@"其实是打键盘",@"car6",nil];
// //获取字典元素个数
// NSUInteger count = dic.count;
// NSLog(@"count = %lu",count);
//
获取所有key值
// NSArray *allkeyArray = dic.allKeys;
//
// for (int i = 0; i<allkeyArray.count; i++) {
// NSLog(@"allkeyArray[%d] = %@",i,[allkeyArray objectAtIndex:i]);
// }
// // NSLog (@"%@",[dic allKeys]);
//
//
获取所有value值
// NSArray *allvaluesArray = dic.allValues;
//
// for (int i = 0; i<allvaluesArray.count; i++) {
// NSLog(@"allvaluesArray[%d] = %@",i,[allvaluesArray objectAtIndex:i]);
// }
// NSLog (@"%@",[dic allValues]);
//
//
// //通过key查询value值
// NSString *car1 = [dic valueForKey:@"car1"];
// NSLog(@"car = %@",car1);
//
// NSString *car2 = [dic valueForKey:@"car2"];
// NSLog(@"car = %@",car2);
//
//可变字典
// 初始化方法
NSMutableDictionary *mDictionary = [[NSMutableDictionaryalloc]initWithObjectsAndKeys:
@"BenZ",@"car1",
@"zhang",@"car2",
@"吃饭",@"car3",
@"睡觉",@"car4",
@"打豆豆",@"car5",
@"其实是打键盘",@"car6",nil];
//使用已经存在的不可变字典初始化一个新的可变字典
// NSMutableDictionary *mDic1 = [[NSMutableDictionary alloc]initWithDictionary:dic];
//
// //使用便利构造器方法创建一个新的空的可变字典
// NSMutableDictionary *mDic2 = [NSMutableDictionary dictionary];
//
//增删改
//添加元素
//向字典中添加value和key
[mDictionary setValue:@"valueZHI"forKey:@"keyZHI"];
NSLog(@"%@",mDictionary);
//向一个字典中添加一个字典
NSDictionary *dict4=[NSDictionarydictionaryWithObject:@"value6"forKey:@"key6"];
[mDictionary addEntriesFromDictionary:dict4];
NSLog(@"%@",mDictionary);
//向字典中添加value和key
[mDictionary setValue:@"valueZHI"forKey:@"keyZHI"];
NSLog(@"%@",mDictionary);
//删除元素
//移除指定key的value值
[mDictionary removeObjectForKey:@"car1"];
NSLog(@"%@",mDictionary);
//删除一组key的value值
NSArray *arrayKeys=[NSArrayarrayWithObjects:@"car1",@"car2",@"car3",nil];
[mDictionary removeObjectsForKeys:arrayKeys];
NSLog(@"%@",mDictionary);