OC_ NSDictionary ,NSMutableDictionary 字典

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);

原文地址:https://www.cnblogs.com/z-han49888/p/4887913.html