不可变字典NSDictionary和可变字典NSMutableDictionary

1、字典的创建

  //添加的时候先添加值,再添加键

      //存储的是值键对

        NSDictionary * dic = [[NSDictionary alloc] initWithObjectsAndKeys:@"one", @"1", @"two", @"2", @"three",@"3", nil];

        1)一个数组作为值,一个数组作为键

   2)两个数组的元素个数必须相等

   3)因为字典中的键和值是成对出现的

        NSArray * arrayVal = @[@"one", @"two", @"three"];

        NSArray * arrayKey = @[@"1", @"2", @"3"];

        NSDictionary * dic1 = [[NSDictionary alloc] initWithObjects:arrayVal forKeys:arrayKey];

        NSDictionary * dic2 = [[NSDictionary alloc] initWithDictionary:dic];

//以下是用类方法创建字典

        NSDictionary * dic3 = [NSDictionary dictionaryWithObjectsAndKeys:@"one", @"1", @"two", @"2", @"three",@"3", nil];

        NSDictionary * dic4 = [NSDictionary dictionaryWithObjects:arrayVal forKeys:arrayKey];

        NSDictionary * dic5 = [NSDictionary dictionaryWithDictionary:dic];

    //Xcode4.6以后允许用以下方法创建字典

NSDictionary * dic6 = @{@"1": @"one", @"2":@"two", @"3":@"three"};


2、字典常用方法

(1)如何查找值

NSDictionary * dic1 = @{@"1": @"one", @"2":@"two", @"3":@"three"};

              NSString * str = [dic1 objectForKey:@"1"];

(2)如何遍历字典

     //字典的遍历

        //1for in 遍历:快速遍历,在遍历的过程中,每循环一次就会得到一个键,通过键去获取值

        for (NSString * key in dic1) {

            NSLog(@"%@", [dic1 objectForKey:key]);

        }

        //2、枚举器遍历

        //先创建一个枚举器,枚举器中存放的是字典中的所有键

        //遍历的过程中逐一去取键,然后通过键去得到值

        NSEnumerator * enu = [dic1 keyEnumerator];

        NSString * str1;

         while ((str1 = [enu nextObject]) != nil) {

            NSLog(@"%@", [dic1 objectForKey:str1]);

        }

     (3)返回键值对个数

NSUInteger counter = [dic1 count];     

(4) 通过键去获取值

[dic1 objectForKey:@"1"];


(5)  获取所有键或所有值

[dic1 allKeys];

             [dic1 allValues];


3、可变字典

<1>增加键值对

       //如果键是不存在的,则添加一个键值对

        //如果键是存在的,把键所对应的值修改成当前对象的值

NSMutableDictionary * dic = [[NSMutableDictionary alloc] initWithObjectsAndKeys:@"one", @"1", @"two", @"2", @"three",@"3", nil];

        [dic setObject:@"four" forKey:@"4"];

        //[dic setObject:@"FOUR" forKey:@"4"];

      <2>删除键值对

       //通过键去删除键所对应的键值对

        [dic removeObjectForKey:@"4"];

        //把所要删除的键值对的键存放在数组中,删除多个键值对

        [dic removeObjectsForKeys:@[@"1", @"2"]];

        //删除所有键值对

        [dic removeAllObjects];

<3>修改键值对

      //  如果键是不存在的,则添加一个键值对

//  如果键是存在的,把键所对应的值修改成当前对象的值

   [dic setObject:@"four" forKey:@"4"];


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值