字典NSDictionary

NSDictionary/NSMutableDictionary

1.概念:字典是关键字key以及其定义的值value1所构成的集合,即它是由key-value组成的键值队的集合。通常来讲,key一般是NSString类型,value是OC中的任意对象,对于字典来讲,我们就是通过key来访问value
2.为什么有了数组之后还需要有字典呢?在有大量的数据或者频繁的查找信息的时候,使用字典的效率更加高。因为字典是采用键查询的优化存储方式。
3.在OC中,我们使用NSDictionaryNSMutableDictionary来表示字典,其中,NSMutableDictionaryNSDictionary的子类。

不可变字典NSDictionary

1.字典初始化

        //初始化方法
        NSDictionary *dictionary1 = [NSDictionary new];
        NSDictionary *dictionary2 = [NSDictionary dictionary];
        //创建一个键值队的字典
        NSDictionary *dictionary3 = [NSDictionary dictionaryWithObject:@"zhangsan" forKey:@"name"];
        //创建多个键值队的字典
        NSDictionary *dictionary4 = [NSDictionary dictionaryWithObjectsAndKeys:@"zhangsan",@"name",@24,@"age",@"广州",@"address", nil];
        //value 和 key成双出现
        NSLog(@"dictionary = %@",dictionary4);

        //根据一个字典创建一个字典
        NSDictionary *dictionary5 = [NSDictionary dictionaryWithDictionary:dictionary4];

        NSDictionary *dictionary6 = @{};
        NSDictionary *dictionary7 = @{@"name":@"zhangsan"};
        NSDictionary *dictionary8 = @{@"name":@"zhangsan",@"age":@24,@"address":@"广州"};

2.获取字典中键值队的数量

        NSUInteger count = [dictionary4 count];

3.访问字典

        //如何访问字典
        //通过key来访问字典中的值
        NSString *name = [dictionary4 objectForKey:@"name"];
        NSString *newName = dictionary4[@"name"];

        //字典遍历
        //表示字典中所有的key
        NSArray *keysArary = dictionary4.allKeys;
        //表示字典中所有的value
        NSArray *valuesArray = dictionary4.allValues;
        for (NSString *key in keysArary) {
            NSLog(@"%@:%@",key,dictionary4[key]);
        }

        enumerator = dictionary4.keyEnumerator;
        NSString *key;
        while (key = [enumerator nextObject]) {
            NSLog(@"%@:%@",key,dictionary4[key]);
        }

        //在字典中不能存在相同的Key,能够存在相同的value
        NSDictionary *dictionary9 = @{@"name":@"zhangsan",@"name":@"lisi"};
        NSLog(@"dictionary9 = %@",dictionary9);

可变字典NSMutableDictionary

1.初始化方法

        //1.初始化方法
        NSMutableDictionary *mdictionary1 = [NSMutableDictionary dictionary];
        NSMutableDictionary *mdictionary2 = [NSMutableDictionary dictionaryWithObject:@"name" forKey:@"vincent"];
        NSMutableDictionary *mdictianary3 = [NSMutableDictionary dictionaryWithObjectsAndKeys:@"vincent",@"name",@24,@"age",@"广州",@"address", nil];
        //没有新语法
        NSMutableDictionary *mdictionary4 = [NSMutableDictionary dictionaryWithDictionary:dictionary8];

        //自己独有的初始化方法
        NSMutableDictionary *mdictionary5 = [NSMutableDictionary dictionaryWithCapacity:10];

        NSMutableDictionary *mdictionary6 = [NSMutableDictionary dictionaryWithContentsOfFile:@""];
        NSMutableDictionary *mdictionary7 = [NSMutableDictionary dictionaryWithContentsOfURL:[NSURL URLWithString:@""]];

2.不可变字典的操作

        //增
        [mdictionary5 setValue:@"vincent" forKey:@"name"];
        [mdictionary5 setValue:@"guangzhou" forKey:@"address"];
        NSLog(@"mdictionary5 = %@",mdictionary5);

        //改
        [mdictionary5 setValue:@"jerry" forKey:@"name"];
        NSLog(@"mdictionary5 = %@",mdictionary5);


        //新语法
        mdictionary5[@"name"] = @"zhoudu";

        NSLog(@"mdictionary5 = %@",mdictionary5);


        //删
        [mdictionary5 removeObjectForKey:@"name"];
        [mdictionary5 removeObjectsForKeys:@[]];
        [mdictionary5 removeAllObjects];
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值