• 字典


    /*
        //数组 + 字典 + 集 = 集合
        //键(key) 值(Value) 对 是一个整体
        //输出大括号是字典,小括号是数组
    //不可变字典
    //创建一个字典
      //1.正常的初始化方法
        NSDictionary *dict1=[[NSDictionary alloc] initWithObjectsAndKeys:@"张三",@"name",@"男",@"sex",@"18",@"age", nil];
      //输出方法一(创建方式1)
        NSLog(@"%@",dict1);//哈希hash排序输出,汉字输出的是4位数的编码
      //输出方法二(创建方式2)
        
      //使用数组创建
        NSArray *keyArray=[NSArray arrayWithObjects:@"name",@"sex",@"age", nil];
        NSArray *valueArray=[NSArray arrayWithObjects:@"张三",@"男",@"18", nil];
       
      //将两个数组放在一个字典里面
      NSDictionary *dict2=[[NSDictionary alloc] initWithObjects:valueArray forKeys:keyArray];
        NSLog(@"%@",dict2);
     
      //输出方法3(创建方式3)
        //使用字典创建字典
        NSDictionary *dict3=[NSDictionary dictionaryWithDictionary:dict2];
        NSLog(@"%@",dict3);
        
    //字典的使用(常用方法)
        //取出字典中所有的key值
        NSArray *arr1=[dict3 allKeys];
        NSLog(@"%@",arr1);
        
      //取出字典中所有的value值
        NSArray *arr2=[dict3 allValues];
        NSLog(@"%@",arr2);
        
      //根据指定key值 返回key对应的value值
        NSString *s1=[dict3 objectForKey:@"name"];
        NSLog(@"%@",s1);
        
        //value值可以是任意类类型  key值: NSSring类型
        //能够当key值的,都需要遵循NSCopying协议
        
        
        Person *p=[[Person alloc] initWithName:@"张三" age:18];
        Person *p1=[[Person alloc] initWithName:@"李四" age:20];
        Person *p2=[[Person alloc] initWithName:@"王二" age:25];
        
        NSArray *keyArray1=[NSArray arrayWithObjects:@"张三",@"李四",@"王二" ,nil];
        NSArray *valueArray1=[NSArray arrayWithObjects:p,p1,p2,nil];
        NSDictionary *dict4=[[NSDictionary alloc] initWithObjects:valueArray1 forKeys:keyArray1];
        NSLog(@"%@",dict4);
        
     
        NSLog(@"%@",p);
        
        
        
        
    //可变字典(继承于不可变字典)
    //创建一个空的字典
        NSMutableDictionary *mdict1=[NSMutableDictionary dictionary];
        
      //添加元素
        [mdict1 setObject:@"Tom" forKey:@"name"];
        NSLog(@"%@",mdict1);

      //删除元素
        [mdict1 removeObjectForKey:@"name"];
        NSLog(@"%@",mdict1);
        
        
      //往空字典添加三个元素
        [mdict1 setObject:@"a" forKey:@"1"];
        [mdict1 setObject:@"b" forKey:@"2"];
        [mdict1 setObject:@"c" forKey:@"3"];
        NSLog(@"%@",mdict1);
        
      //修改元素:首先找key值,看有没有key值,如果有就用新value值修改value值,如果没有那就直接添加(根据key改value)
        //有则改之,无则加勉.
        [mdict1 setObject:@"x" forKey:@"1"];
        NSLog(@"%@",mdict1);
        */
        
        
        /*
        Student *stu1=[[Student alloc] initWithName:@"tony"];
        NSLog(@"%@",stu1);
        */
        
        /*
        Person *person1=[[Person alloc] initWithName:@"tony" age:20];
        Person *person2=[[Person alloc] initWithName:@"mike" age:18];
        Person *person3=[[Person alloc] initWithName:@"joek" age:25];
        
         
         //初始化一个空字典
        NSMutableDictionary *mdict1=[NSMutableDictionary dictionary];
        [mdict1 setObject:person1 forKey:[person1 name]];
        [mdict1 setObject:person2 forKey:[person2 name]];
        [mdict1 setObject:person3 forKey:[person3 name]];
        NSLog(@"%@",mdict1);
        
       
         //数组,字典嵌套
        NSMutableDictionary *mdict2=[NSMutableDictionary dictionaryWithDictionary:mdict1];
        NSArray *arr1=[NSArray arrayWithObjects:mdict1 ,mdict2,nil];
        NSDictionary *dict1=[NSDictionary dictionaryWithObject:arr1 forKey:@"person"];
        
        NSLog(@"%@",dict1);
     
        
        
        NSArray *arr2=[dict1 valueForKey:@"person"];//用数组接收
        NSDictionary *dict2=arr2[0];//用字典接收
        Person *p=[dict2 valueForKey:@"mike"];
        NSLog(@"%@",p);

  • 相关阅读:
    sql2005 Reporting service 自定义报表调色版
    moss2007自定义网站栏不显示
    设置列表字段为主键
    分享"SharpZipLip使用代码"
    关于“解决实现注册用户后,自动具备访问网站的权限的问题”文章中配置出现找不到角色的问题的解决办法
    共享GridView DataGrid DataTable导出到Excel代码
    TD8.0管理员工具
    共享一个对Reflector 反编译支持中文的修正FileGenerator文件
    WPF的Binding学习笔记(一)
    C#学习☞WPF的一个有趣试验
  • 原文地址:https://www.cnblogs.com/-ios/p/4672979.html
Copyright © 2020-2023  润新知