/*
字典的定义:字典的元素是键值对,
特点:
1.同一个value可以变多个key
2.一个key只能对应一个value。结构是无序的。
3.理论上key和value是可以是任意对象,实际上key一般用NSString
*/
//1.创建字典(类方法和对象方法)
NSDictionary *dic = [[NSDictionary alloc] initWithObjectsAndKeys:@"yangjie",@"1",@"pengyue",@"2", nil];
NSLog(@"%@",dic);
NSLog(@"%@",[dic valueForKey:@"1"]);
//1.1快速创建字典并对赋值(这是key与value的对应关系)
NSDictionary *dic1 = @{@"key1":@"1",@"key2":@"1",@"key3":@"value3"};
NSLog(@"%@",dic1);
//2.字典的遍历
//2.1枚举法(遍历的是value或者是key)
//2.1.1keyEnumerator是遍历键,如果是objectEnumerator遍历的是值
NSEnumerator *rator = [dic objectEnumerator];
id obj;
while(obj = [rator nextObject])
{
NSLog(@"value=%@",obj);
}
//2.2快速遍历(遍历的是key且只能遍历)
for(id key in dic)
{
NSLog(@"key=%@ value=%@",key,[dic valueForKey:key]);
}
//3.常见的方法
NSArray *keys = [dic allKeys];//.获取所有键
NSLog(@"%@",keys);
NSArray *values = [dic allValues];//.获取所有值
NSLog(@"%@",values);
NSLog(@"count=%lu",dic.count);//.获取键值对的个数
//3.1获取某个value对应所有的key
NSArray *arr = [dic1 allKeysForObject:@"1"];
NSLog(@"%@",arr);
//__________可变字典___________
NSMutableDictionary *dic4 = [NSMutableDictionary dictionaryWithObjectsAndKeys:@"value1",@"key1",@"value2",@"key2",@"value3",@"key3", nil];
//1.增加键值对
//1.1.如果增加的键值对,key存在,修改value,不存在则增加
[dic4 setObject:<#(id)#> forKey:<#(id<NSCopying>)#>]
//1.2如果key有交叉则修改value,
[dic4 addEntriesFromDictionary:<#(NSDictionary *)#>]
//2.1通过key删除value
[dic4 removeObjectForKey:<#(id)#>]
//2.2通过key的集合删除
[dic4 removeObjectsForKeys:<#(NSArray *)#>]