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

1、字典类

 是用于保存具有映射关系(Key - value)的数据集合

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

 一个Key - value的组合成为是一个条目,字典是存储Key - value对容器

 特点:

 1、字典key来存储数据(数据通过下标存取元素)

 2key不能重复  value必须是对象(不是对象用NSNumber NSValue转换成对象)

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

 4、字典也可以分可变和不可变

 NSDictionary不可变字典一旦创建 键值对就不能更改不能添加不可以删除 只能读取keyvalue

NSMutableDictionary可变字典

   */

1、//创建字典 只能成对出现如果出现元素不能出现单数个

NSDictionary *dic = [[NSDictionary alloc]initWithObjectsAndKeys:

                     @"piao1",@"mingzu1",

                     @"jianai",@"book2",

                     @"xiaofuren",@"book3",

                     @"baoma",@"car1",

                     @"baoshijie",@"car2",

                     @"lanbojini",@"car3",nil];

//获取  将创建字典放到数组中

          NSArray *key1 = [NSArray arrayWithObjects:dic,dic1, nil];

          NSString *ns = [key1 objectAtIndex:1];//获取数组中下标为1的字典  

        //获取所有key

       NSArray *k = [dic1 allKeys];//字典dic1 所有value值

       NSLog(@"%@",ns);//输出了数组中下标1的 字典dic1(输出字典中所有key  所有的value值

        NSLog(@"%@",k);//输出了数组中下标1的 字典dic1(只输出字典中所有key对应 的value值


2、//可变字典NSMutableDictionary 初始化方法  mArray下面例子有用到

       NSMutableDictionary *mArray = [[NSMutableDictionary alloc]initWithObjectsAndKeys:@"p",@"mingzu1",

                                       @"j",@"book2",

                                       @"x",@"book3",

                                       @"b",@"car1",

                                       @"b",@"car2",

                                       @"l",@"car3", nil];


3.//便利构造器方法创建一个空字典   创建空的字典,然后设置新的一个字典,把会之前的字典全部覆盖掉

        NSMutableDictionary  *mdic = [NSMutableDictionary dictionary];

        [mdic setValuesForKeysWithDictionary:dic];


对键值对进行曾

4.获取下标book2   对应value

objectForKey = jianai

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

        [dic objectForKey:@"m"];

//获取下标book2   对应value值中 首字母substringToIndex:1

substringToIndex = j

         NSLog(@"substringToIndex = %@", [[dic                          objectForKey:@"book2"]substringToIndex:1]);                                          


5.向一个字典添加一个字典   意思就是创建一个可变字典   在这个可变字典中再添加一个字典

他和在这个可变字典中添加一个key 和 value 是两回事   如6.

       NSDictionary *nsd = [NSDictionarydictionaryWithObject:@"tianjia"forKey:@"add"];

        [mArrayaddEntriesFromDictionary:nsd];

       NSLog(@"mArray = %@",mArray);


mArray = {

    add = tianjia;

    book2 = j;

    book3 = x;

    car1 = b;

    car2 = b;

    car3 = l;

    mingzu1 = p;

}

6.//向字典中添加key  value  虽然输出和上面的格式一样,都是添加一个key 一个value

        [mArray setValue:@"value" forKey:@"setKey"];

        NSLog(@"mArray = %@",mArray);


mArray = {

    add = tianjia;

    book2 = j;

    book3 = x;

    car1 = b;

    car2 = b;

    car3 = l;

    mingzu1 = p;

    setKey = value;

}



修改Key 对应的value  每个value只有一个key  所以直接用setValue  修改想要的value  和添加value用的方法setValue一样    是添加还是修改   系统会先找key  要是字典中有这个key  对应就是修改  要是没见有这个key  对应就是添加

        [mArray setValue:@"LOVE" forKey:@"setKey"];

         NSLog(@"LOVEmArrayLOVE = %@",mArray);


LOVEmArrayLOVE = {

    add = tianjia;

    book2 = j;

    book3 = x;

    car1 = b;

    car2 = b;

    car3 = l;

    mingzu1 = p;

    setKey = LOVE;

}


//移除指定的key  value  将key是add  的键值对移除

        [mArray removeObjectForKey:@"add"];

        NSLog(@"removeObjectForKey = %@",mArray);

 add = tianjia; 移除

removeObjectForKey = {

    book2 = j;

    book3 = x;

    car1 = b;

    car2 = b;

    car3 = l;

    mingzu1 = p;

    setKey = LOVE;

}

//删除字典中所有的value

        [mArray removeAllObjects];

        NSLog(@"removeAllObjects = %@",mArray);  

输出结果为空











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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值