NSDictionary /NSMutableDictionary

NSDictionary /NSMutableDictionary

1.概念:字典是关键字key及其定义的值value所构成的集合,即它是由key-value组成的键值队的集合。通常来讲,key一般是NSString类型,value是OC中任意的对象。对于字典来讲,我们就是通过key来访问value

2.为什么在有了数组后,还需要有字典呢?在有大量的数据或频繁的查找信息,使用字典效率更高。因为字典是采用键查询的优化存储方式。

3.在OC中我们使用NSDictionaryNSMutableDictionary来表示字典,其中NSMutableDictionaryNSDictionary子类。

4.字典初始化

 //创建一个空的字典
    NSDictionary *dictionary1 = [[NSDictionary alloc] init];
    NSDictionary *dictionary2 = [NSDictionary dictionary];
    //创建一个键值队的字典
    NSDictionary *dictionary3 = [NSDictionary dictionaryWithObject:@"vincent" forKey:@"name"];
    //创建多个键值队的字典
    NSDictionary *dictionary4 = [NSDictionary dictionaryWithObjectsAndKeys:@"vincent",@"name",@24,@"age",@"广州",@"address", nil];
    //value在前,key在后,value和key要成双出现
    NSLog(@"dictionary4 = %@",dictionary4);
    //根据一个字典创建一个字典
    NSDictionary *dictionary5 = [NSDictionary dictionaryWithDictionary:dictionary4];

    //新语法创建字典
    NSDictionary *dictionary6 = @{};
    NSDictionary *dictionary7 = @{@"name":@"vincent"};
    NSDictionary *dictionary8 = @{@"name":@"vincent",@"age":@24,@"address":@"广州"};

    NSDictionary *dictionary11 = [NSMutableDictionary dictionaryWithContentsOfFile:@""];
    NSDictionary *dictionary12 = [NSMutableDictionary dictionaryWithContentsOfURL:[NSURL URLWithString:

5.键值对数量

  NSUInteger count = dictionary4.count;

6.如何访问字典中元素

    //通过key来访问字典中对应的值
    NSString *name = [dictionary4 objectForKey:@"name"];
    //新语法
    NSString *newName = dictionary4[@"name"];

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

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

7.在字典中不能够存在相同key,能够存在相同的value

8.在字典中键值对是无序的

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值