字典概述
1.字典是一个无序的集合,用来存储具有一一对应关系的数据。
2.字典中存储的每一个对象都是一对键值对,键值对包含两个部分key和value,key与value的值都是对象类型。
3.对于每一对key-value称为一个条目(Entry)。
字典的特点
1,与数组不同,字典靠key存取元素。
2,key与value必须都是对象类型。
3,字典中键值对的存储是无序的。
4,字典分为两种类型不可变字典(NSDictionary),可变字典(NSMutableDictionary)。
NSDictionary的创建
//初始化字典
NSDictionary *num = [[NSDictionary alloc] initWithObjectsAndKeys:@"one", @"num1", @"two", @"num2", @"three", @"num3", nil];
//注:先写value,再写key,一对key-value是一个元素,nil作为字典存放元素的结束标志。
//便利构造器
NSDictionary *num1 = [NSDictionary dictionaryWithObjectsAndKeys:@"one",@"num1",@"two",@"num2",nil];
//字面量
//使用“ @{} ”,“ {} ”中存入字典元素,key:value一一对应,元素之间使用”,”相隔。
NSDictionary *num2 = @{@"num1":@"one",@"num2":@"two"};
NSLog(@"%@,%@,%@",num,num1,num2);
NSDictionary的常用操作
//获取字典中键值对的个数
NSInteger count = [num count];
//获取字典中所有的键
NSArray *arr = [num allKeys];
//获取字典中所有的值
NSArray *arr1 = [num allValues];
//根据键获得对应的值
NSString *string = [num objectForKey:@"num1"];
NSLog(@"%@",string);
NSMutableDictionary概述
NSMutableDictionary(可变字典)的父类是NSDictionary,NSMutableDictionary具有NSDictionary所有的方法,同时在其基础上添加了 “增加”,“修改”,“删除”的操作。
NSMutableDictionary创建常用方法
//初始化方法
NSMutableDictionary *name = [[NSMutableDictionary alloc] initWithCapacity:0];
//便利构造器
NSMutableDictionary *name1 = [NSMutableDictionary dictionaryWithCapacity:0];
//字面值
NSMutableDictionary *name2 = [@{@"key1":@"frank", @"key2":@"duck"} mutableCopy];
//常用写法
NSMutableDictionary *name0 = [NSMutableDictionary dictionaryWithObjectsAndKeys:@"one",@"num1",@"two",@"num2", nil];
NSMutableDictionary常用操作
//字典中添加新的键值对
[name2 setObject:@"dog" forKey:@"key3"];
[name2 setObject:@33 forKey:@"age"];
//修改已有键对应的值,如果键不存在,则为添加键值对,如果键存在,则为修改已有键对应的值
[name2 setObject:@43 forKey:@"age"];
NSLog(@"%@",name2);
//移除指定的键对应的键值对
[name2 removeObjectForKey:@"age"];
NSLog(@"%@",name2);
//移除字典中所有的键值对
[name2 removeAllObjects];
NSLog(@"%@",name2);