zoukankan      html  css  js  c++  java
  • OC06 -- 字典

    一. 创建不可变字典的方式:

    //字典的字面量,前key后value

        NSDictionary *dic =@{@"1":@"2",@"3":@"4"};


    NSDictionary *dic = [[NSDictionaryalloc]init];

    NSDictionary *dic = [NSDictionary dictionary];

    NSDictionary *dic = [[NSDictionary alloc]initWithObjectsAndKeys:@"1",@"2",@"3",@"4",@"5",@"6",@"7",@"8",nil];  

    NSLog(@"%@",dic);

     // Key 是唯一的,可是Value是能够反复的

     // key 不能为空.


    二. 不可变字典的属性与方法:

    //1.属性:有多少键值对 -- count:

        NSLog(@"%ld",dic.count);


    // 2. objectForKey -- 依据Keyvalue:

        NSLog(@"%@",[dic objectForKey:@"2"]);

        NSLog(@"%@",dic[@"2"]);


    //3. 获取全部的keyvalue --

        NSLog(@"%@",dic.allKeys);

        NSLog(@"%@",dic.allValues);


    三. 创建可变字典的方式:

       NSMutableDictionary *dic = [NSMutableDictionarydictionaryWithObjectsAndKeys:@"1",@"2",@"3",@"4",@"5",@"6",nil]; 


       // 遍历字典.

         打出全部Vaule

       for (NSInteger i = 0; i < dic.allKeys.count; i++) {

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

        }

       for (NSString *str in dic) {

            NSLog(@"%@",str);// 打出字典的Key.

            NSLog(@"%@",dic[str]);//打出Vaule.

        }


    四.可变字典的属性与方法: 

    NSMutableDictionary *dic1 = [[NSMutableDictionaryalloc]initWithObjectsAndKeys:@"1",@"2",@"3",@"4",@"5",@"6",@"7",@"8",nil];


    //1.可变键值对加入(key不存在时就进行加入,key存在时,就进行vaule值的改动.) -- setObject forKey:

        [dic1setObject:@"10"forKey:@"11"];

        NSLog(@"%@ ",dic1);

        [dic1setObject:@"1000"forKey:@"11"];

       NSLog(@"%@",dic1);


    //2. 移除键值对

        [dic1 removeObjectForKey:@"8"];

       NSLog(@"%@",dic1); 


    //3. 所有移除

        [dic1 removeAllObjects];

       NSLog(@"%@",dic1);


    //4. setObject 是字典自己方法,setVauleKVC的方法,即使效果一样,但以后对字典进行操作还用setObject.

        [dic1setValue:@"100"forKey:@"10"];


    五.字典与数组的嵌套:

    //1. 字典里对象是数组.

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

       NSArray *arr2 = @[@"5",@"6",@"7",@"8"];

        NSMutableDictionary *dic = [NSMutableDictionarydictionaryWithObjectsAndKeys:arr1,@"arr1",arr2,@"arr2",nil];

        // 遍历.

     for (NSString *keyin dic) {

       // 针对相应的key 找到vaule,vaule是一个数组,所以用一个数组对象来接受.

           NSLog(@"%@",key);

           NSArray *arr = dic[key];

         for (NSString *vaulein arr) {

             NSLog(@"%@",vaule);

           }

       }


    //2. 数组里对象是字典.

       NSDictionary *dic1 = [NSDictionarydictionaryWithObjectsAndKeys:@"杨林",@"name",@"19",@"age",nil];

        NSDictionary *dic2 = [NSDictionarydictionaryWithObjectsAndKeys:@"刘鑫狗",@"name",@"20",@"age",nil];

        

        NSDictionary *dic3 = [NSDictionarydictionaryWithObjectsAndKeys:@"刘伊茹",@"name",@"0",@"age",nil];

       NSArray *arr = @[dic1,dic2,dic3];

        

       for (NSDictionary *dicin arr) {

           for (NSString *keyin dic) {

               NSLog(@"%@",dic[key]);

            }

        }

       
    六.三层嵌套的练习:

       NSDictionary *dic1 = [NSDictionarydictionaryWithObjectsAndKeys:@"杨林",@"name",@"19",@"age",nil];

        NSDictionary *dic2 = [NSDictionarydictionaryWithObjectsAndKeys:@"刘鑫狗",@"name",@"20",@"age",nil];

        NSDictionary *dic3 = [NSDictionarydictionaryWithObjectsAndKeys:@"刘伊茹",@"name",@"0",@"age",nil];

       NSArray *arr1 = @[dic1,dic2];

       NSArray *arr2 = @[dic3];

       NSDictionary *Bdic = [NSDictionarydictionaryWithObjectsAndKeys:arr1,@"arr1",arr2,@"arr2",nil];

       for (NSString *keyBin Bdic) {

           NSArray *arr =Bdic[keyB];

           for (NSDictionary *sdicin arr) {

               for (NSString *keyin sdic) {

                   NSLog(@"%@",sdic[key]);

                }

            }

        }





  • 相关阅读:
    slf4j绑定log4j失败
    [转]activiti5用户任务分配
    关于ajax提交的公共接口的一大用处
    jQuery插件开发方式
    centos7安装mysql
    Centos7安装JDK
    奇葩问题:spring+mybaits项目突然出现其中一些Mapper类找不到
    JAVA多线程下,获取递增的序列号
    库存扣减的流水账记录问题
    My97DatePicker使用的问题
  • 原文地址:https://www.cnblogs.com/jhcelue/p/6767363.html
Copyright © 2011-2022 走看看