字典
字典类:描述一个数据时,数据包含多种信息,类似于结构体。
1、只能存储对象;
2、对象的数量和类型没有限制;
3、字典存储数据时是无序的,只能靠标签(key)去存储和查找;
4、字典中存储的内容:键值对 Key->Value。
不可变字典:NSDictionary
通过例题学习字典的使用:
定义字典对象,存储一个人的信息(姓名、性别、年龄)。
字典声明时,参数和key值对应的顺序为:value,key1, value2, key2,……
声明一个字典对象:
NSDictionary * dic =[[NSDictionary alloc] initWithObjectsAndKeys:@"xiaomei",@"name", @"female", @"gender", @20,@"age", nil];
NSLog(@"%@",dic);
//根据key从字典中获取对应的value
//字典中所有的key必须是唯一不重复的,value是可以存在重复现象的
NSString * name =[dic objectForKey:@"name"];
NSLog(@"%@",name);
//如果获取value时使用的key不存在,返回nil
//用于判断字典中是否存储了某个对象
NSLog(@"%@",[dic objectForKey:@"nam"]);
//获取字典中所有的key
NSArray * keys =[dic allKeys];
NSLog(@"%@",keys);
//获取字典中所有的value
NSArray * values =[dic allValues];
NSLog(@"%@",values);
//遍历字典:因为无序,不能依靠下标
//遍历allkeys,通过遍历得到key,再从字典中获取对应的value
for (int i = 0; i< keys.count; i++) {
//遍历数组得到key
NSString * key =keys[i];
//根据key获取value
NSObject * value =[dic objectForKey:key];
//打印key和value
NSLog(@"%@%@", key, value);
}
可变字典:NSMutableDictionary
创建字典对象,存储一个人的信息(姓名、性别、年龄)
NSMutableDictionary* dic = [NSMutableDictionary dictionary];
//添加对象,键值对
[dic setObject:@"lisi" forKey:@"name"];
[dic setObject:@"female"forKey:@"gender"];
[dic setObject:@25 forKey:@"age"];
NSLog(@"%@",dic);
//修改某个值
//和添加的方法一致,如果key已经存在属于修改,如果key不存在属于添加
[dic setObject:@26forKey:@"age"];
NSLog(@"%@",dic);
//删除(移除)
[dic removeObjectForKey:@"age"];
NSLog(@"%@",dic);
//移除多个对象
NSArray * array =@[@"age", @"gender"];
[dicremoveObjectsForKeys:array];
NSLog(@"%@",dic);
//清空
[dic removeAllObjects];
NSLog(@"%@",dic);