OC基础第四讲:字典

//字典类

        /*

        字典用于保存具有映射关系(key-value)的数据集合

        对于name:张三来讲,name就是keykey对应的value就是张三

         一个key-value的组合被认为是一个条目,字典是存储key-value对容器


         

         字典类的特点:

        与数组不同,字典靠key存取元素(数组是通过下标来存取元素)

         key不能重复,value必须是对象(如果不是对象用  NSNumber,NSValue

        键值对在字典中是无序存储的

        字典也分可变字典和不可变字典

        不可变字典:字典一旦创建,键值不能更改,不可添加,不可删除,仅能读取keyvalue

        可变字典:字典创建后,键值可以更改,可以添加,可以删除,也能读取keyvalue

        字典中元素是成对出现的,不能出现单数个(键值对键值对,有键有值是一对)

         

         

         吃饭睡觉打键盘

         */

        

        //创建字典  NSDictionary

        

        NSDictionary *dic = [[NSDictionaryalloc]initWithObjectsAndKeys:

                             @"BenZ",@"car1",

                             @"zhang",@"car2",

                             @"吃饭",@"car3",

                             @"睡觉",@"car4",

                             @"打豆豆",@"car5",

                             @"其实是打键盘",@"car6",nil];

        

//        //获取字典元素个数

//        NSUInteger count = dic.count;

//        NSLog(@"count = %lu",count);

//        

获取所有key

//        NSArray *allkeyArray = dic.allKeys;

//        

//        for (int i = 0; i<allkeyArray.count; i++) {

//            NSLog(@"allkeyArray[%d] = %@",i,[allkeyArray objectAtIndex:i]);

//        }

// //        NSLog (@"%@",[dic allKeys]);

//        

//        

获取所有value

//        NSArray *allvaluesArray = dic.allValues;

//        

//        for (int i = 0; i<allvaluesArray.count; i++) {

//            NSLog(@"allvaluesArray[%d] = %@",i,[allvaluesArray objectAtIndex:i]);

//        }

//             NSLog (@"%@",[dic allValues]);

//        

//        

//        //通过key查询value

//        NSString *car1 = [dic valueForKey:@"car1"];

//        NSLog(@"car = %@",car1);

//        

//        NSString *car2 = [dic valueForKey:@"car2"];

//        NSLog(@"car = %@",car2);

//    

        

        //可变字典

          // 初始化方法

        NSMutableDictionary  *mDictionary = [[NSMutableDictionaryalloc]initWithObjectsAndKeys:

                                              @"BenZ",@"car1",

                                              @"zhang",@"car2",

                                              @"吃饭",@"car3",

                                              @"睡觉",@"car4",

                                              @"打豆豆",@"car5",

                                              @"其实是打键盘",@"car6",nil];

    

       //使用已经存在的不可变字典初始化一个新的可变字典

//        NSMutableDictionary *mDic1 = [[NSMutableDictionary alloc]initWithDictionary:dic];

//        

//        //使用便利构造器方法创建一个新的空的可变字典

//        NSMutableDictionary *mDic2 = [NSMutableDictionary dictionary];

//

        //增删改

        

        //添加元素

        

        //向字典中添加valuekey

        [mDictionary setValue:@"valueZHI"forKey:@"keyZHI"];

        NSLog(@"%@",mDictionary);

        

       //向一个字典中添加一个字典

        

        NSDictionary *dict4=[NSDictionarydictionaryWithObject:@"value6"forKey:@"key6"];

        [mDictionary addEntriesFromDictionary:dict4];

        NSLog(@"%@",mDictionary);

        

        //向字典中添加valuekey

        [mDictionary setValue:@"valueZHI"forKey:@"keyZHI"];

        NSLog(@"%@",mDictionary);

        

        

        //删除元素

        

        //移除指定keyvalue

                [mDictionary removeObjectForKey:@"car1"];

                NSLog(@"%@",mDictionary);

        

        

        //删除一组keyvalue

                NSArray *arrayKeys=[NSArrayarrayWithObjects:@"car1",@"car2",@"car3",nil];

                [mDictionary removeObjectsForKeys:arrayKeys];

                NSLog(@"%@",mDictionary);


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值