Foundation中的NSDictionary与NSMutableDictionary



字典就是关键字及其定义(描述)的集合。Cocoa中的实现字典的集合NSDictionary在给定的关键字(通常是一个NSString)下存储一个数值(可以是任何类型的对象)。然后你就可以用这个关键字来查找相应的数值。
不同于数组,字典(也被称为散列表或关联数组)使用的是键查询的优化存储方式。它可以立即找出要查询的数据,而不需要遍历整个数组进行查找。

一、NSDictionary的基本操作
 NSDictionary *dict1 = [NSDictionary dictionaryWithObject:@"jack" forKey:@"name"];//初始化键,值,两个
    
        NSArray *objs = @[@"jack",@"beijing"];
        NSArray *keys = @[@"name",@"adress"];//定义两个数组,然后进行初始化多组键值
       NSDictionary *dict2 = [NSDictionary dictionaryWithObjects:objs forKeys:keys];//初始化多组键值
    
        //也可以这样初始化
        NSDictionary *dict3 = @{@"name":@"jack",@"adress":@"japan" };
    
        id obj = [dict3 objectForKey:@"name"]; //根据键值进行查询
        id obj = dict3[@"name"]; //根据键值进行查询(更简洁)
        NSLog(@"%@",obj);
    
        NSLog(@"%ld",dict3.count);//返回键值对个个数,此处为2
    

二、字典的两种遍历方式

 //字典遍历的两种方式
        NSDictionary *dict5 =@{
                               @"name": @"jack1",
                                @"adress": @"china",
                                @"qq":@"234234",
                                @"name1": @"jack1",
                                @"adress2": @"china",
    
                                };//初始化字典
        NSArray *keyss = [dict5 allKeys];//首先取出来字典中所有的值,存放到数组中
       for (int i = 0 ; i < dict5.count; i ++)//for循环进行遍历
        {
           NSString *key = keyss[i];//用key来存储键
           NSString *objects = dict5[key];//用objects存放查找出来的值
            NSLog(@"%@ == %@ ",key,objects);
        }
          
<span style="color:#ff0000;">  //字典遍历的方式2</span>
        [dict5 enumerateKeysAndObjectsUsingBlock://利用block来循环输出字典
         ^(id key, id obj, BOOL *stop)
        {
            NSLog(@"%@ == %@ ",key,obj);
    
        }];
    

三、NSMutableDictionary基本操作

 NSMutableDictionary *mudc1 = [NSMutableDictionary dictionary];
    
        [mudc1 setObject:@"jack" forKey:@"name"];//添加键值对
        [mudc1 removeObjectForKey:@"jack"]; //移除键值对
    
            NSLog(@"111%@",mudc1); // 打印字典内容
    
    
        NSDictionary *dict4 = @{@"name":@"jack",@"adress":@"japan" };
     NSDictionary可以如上初始化,但是NSMutableDictionary不能这样初始化
    





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值