• OC学习笔记 Foundation 集合类 字典Dictionary


    字典 由键-值对组成的数据集合

    4种创建字典方式

    1>针对单个键值对 直接赋值

     1  NSDictionary *dic = [NSDictionary dictionaryWithObject:@"dajie" forKey:@"name"];//直接创建字典
     2     id object = [dic objectForKey:@"name"];// 取出name键对应值
     3     NSLog(@"%@",object);

    2>以键值对集合创建

    1       NSArray *obj = @[@"dajie",@"ly"];
    2       NSArray *keys = @[@"name",@"address"];
    3       NSDictionary *dic1 = [NSDictionary dictionaryWithObjects:obj forKeys:keys];//创建字典
    4       NSLog(@"%@",dic1);

    3>直接创建并赋值

    1      NSDictionary *dic2 = [NSDictionary dictionaryWithObjectsAndKeys:@"dajie",@"name",@"ly",@"address", nil];//nil不可少
    2      NSLog(@"
    ---%@",dic2);
    3      id obj2 = [dic2 objectForKey:@"name"];//根据键取出对应的值
    4      NSLog(@"%@",obj2);

    4>开发中常用

        //xcode 新特性 开发中常用
    15     NSDictionary *dic3 = @{@"name" : @"dajie",@"address":@"ly",@"qq":@"12324124"};
    16     NSLog(@"%@
    --%@--%ld",dic3,[dic3 objectForKey:@"name"],dic3.count);

    可变字典

    2      NSMutableDictionary *mdic = [NSMutableDictionary dictionary];//创建

    添加元素和删除元素

    //添加键值对
    20     [mdic setObject:@"dajie" forKey:@"person"];
    21     [mdic setObject:@"hashiqi" forKey:@"dog"];
    22     [mdic setObject:@"shapi" forKey:@"dog"];  //主键一样字典元素前者会被后者覆盖
    23     NSString *str = mdic[@"dog"];
    24     NSLog(@"%@",str);
    25   //删除
    26     [mdic removeAllObjects];
    27     [mdic removeObjectForKey:@"dog"];
    28     NSLog(@"%@",mdic);

    遍历元素

    1基本for循环遍历

    30    NSDictionary *newDic = @{
    31                              @"name": @"dajie",
    32                              @"dog":@"HASHIQI"
        }; 33 NSArray *key = [newDic allKeys];//取出所有的key 34 for (int i; i < newDic.count; i++) { 35 NSString *keys = key[i]; 36 NSString *value = newDic[keys]; 37 NSLog(@"%@ = %@",keys,value); 38 }

    2 简洁遍历

    //推荐使用 快速遍历
    40     [newDic enumerateKeysAndObjectsUsingBlock:^(id key, id obj, BOOL *stop) {
    41         NSLog(@"%@ - %@ ",key ,obj );
    42     }];

     总结

    /* NSArray 相当于java List;
    // NSSet相当于java Set 
    // NSdictionary相当于java Map 
    // NSArray NSMutableArray
    有序 快速访问 @[obj1,obj2,obj3];
    快速访问元素 数组名[i];
    
    // NSSet NSMutableSet
    无序
    // NSDictionary NSMutableDictionary 
    无序 快速创建@{key1 : value1,key2 : value2};
    快速访问 字典名[key];
    */
     1     NSArray *persons = @[
     2 @{@"name" :@"dajie",@"phone":@"1234353",
     3   @"books" : @[@"5分钟编程ios",@"5分钟编程Android"]},
     4 @{@"name" :@"xiaojie",@"phone":@"2234353"},
     5   @{@"name" :@"jinyu",@"phone":@"3234353",@"age" : @"1.2"}
     6                          ];
     7     // 先取出数组位置对应的字典
     8     // 再根据字典name这个key找到对应的值
     9 //    NSLog(@"%@",persons[1][@"name"]);
    10 //      NSLog(@"%@",persons[0][@"books"]);
    11     
    12     for (NSString *arrays in persons) {
    13 //     NSInteger *lines  = [persons indexOfObject:@"name"];
    14 //        NSLog(@"%ld - %@",lines,arrays);
    15         NSLog(@" %@ ",arrays);
    16     }
  • 相关阅读:
    Java第三方工具库/包汇总
    龙果开源支付系统介绍
    a标签href不跳转 禁止跳转
    使用LVS 实现负载均衡的原理。
    使用LVS实现负载均衡原理及安装配置详解
    这是一套Java菜鸟到大牛的学习路线之高级教程,由工作了10年的资深Java架构师整理。
    LoadRunner使用教程
    Mac OS启动服务优化高级篇(launchd tuning)禁用某些服务
    三种方式配置Mac OS X的启动项
    网络资源整理
  • 原文地址:https://www.cnblogs.com/zhangdashao/p/4470238.html
Copyright © 2020-2023  润新知