1 数组与字典的区别
数组: 1》存放一组有序对象的集合
2》 通过index下标找对应的对象
3》 数组中对象可以重复
字典: 1》存放一组无序key-value的集合
2》 通过key找到对应的value
3》字典key是唯一的,但是不同的value可以重复
2 字典的初始化
使用一个类方法创建一个空字典(常用)
NSDictionary *dic1 = [NSDictionary dictionary];
(常用) 通过字面量去创建不可变数组和不可变字典
NSArray *array = @[@"df", @"as"];
NSDictionary *dic3 = @{@"年龄" : @"18", @"身高" : @"180"};// key : value
其他方法
NSDictionary *dic4 = [NSDictionary dictionaryWithObjectsAndKeys:@"dr", @"school", @"dl", @"loction", nil];
NSDictionary *dic = [[NSDictionary alloc] init];
NSDictionary *dic2 = [NSDictionary dictionaryWithObject:@"ToT" forKey:@"name"];
3
获取字典key-value的个数
NSLog(@"%lu", [dic count]);
获取字典key-value
NSDictionary *dicKV = [NSDictionary dictionaryWithObjects:array2 forKeys:array];
NSLog(@"%@", dicKV);
4 可变字典
增加key-value
[dicM setValue:@"yellow" forKey:@"color"];// setValue forKey: value不可以为空nil key必须为字符串
[dicM setObject:@"black" forKey:@"otherColor"]; // setObject forKey: value可以为nil
// 当key已经存在时,setValue会改变原来的value值
[dicM setValue:@"black" forKey:@"color"];
// dic[key] 修改key对应的value
dicM[@"color"] = @"red";
删除
// 删除key对应的key-value
[dicM removeObjectForKey:@"color"];
// 删除多个key对应的value
[dicM removeObjectForKeys:@"color", @"age"];
// 清空字典
[dicM removeAllObjects];
删除字典中key对应的键值对(在forin中操作)
NSMutableDictionary *dicTest = [NSMutableDictionary dictionaryWithObjectsAndKeys:@"Jack", @"name", @"19", @"age", @"Man", @"sex", nil];
// 创建一个可变数组: 负责接收符合条件的key
NSMutableArray *temp = [NSMutableArray array];
for (NSString *key in dicTest) {
// 判断条件
if ([key isEqual:@"age"]) {
// 将符合条件的key加到temp数组中(数组存放对象)
[temp addObject:key];
}
}
//删除存放key的数组对应的键值对
[dicTest removeObjectsForKeys:temp];
NSLog(@"%@", dicTest);