字典的基本概念和常用方法

http://blog.sina.com.cn/s/blog_b6e3f37101019luc.html


字典使用Key-Value的形式储存数据。
字典中的对象储存没有顺序,使用key来表示每个对象。
cocoa框架中的字典:NSDictionary和NSMutableDictionary
NSMutableDictionary是NSictionary的子类,能使用其所有方法。
NSMutableDictionary是NSDictionary的可修改版本



#import

int main(int argc, const char * argv[])
{

    @autoreleasepool {
        //不可变字典NSDictionary
        //字典的创建
        NSDictionary *dic1=[NSDictionary dictionaryWithObject:@"velue" forKey:@"k1"];//一个键 一个值
        NSDictionary *dic2=[NSDictionary dictionaryWithObjectsAndKeys:@"v1",@"k1",@"v2",@"k2",@"v3",@"k3",@"v4",@"k4",@"v5",@"k5",nil];//创建多个键 多个值
        NSDictionary *dic3=[NSDictionary dictionaryWithDictionary:dic1];//直接把dic内容给dic3
        NSLog(@"dic1:%@",dic1);
        NSLog(@"dic2:%@",dic2);
        NSLog(@"dic3:%@",dic3);
        
        //获取字典的数量
        int count=[dic2 count];
        NSLog(@"%d",count);
        //获取k3的value
        NSString *string=[dic2 objectForKey:@"k3"];
        NSLog(@"value:%@",string);
        
        //获取字典中所有的key和value
        NSArray *keyArray=[dic2 allKeys];
        NSArray *valueArry=[dic2 allValues];
        NSLog(@"keyArray:%@valueArry:%@",keyArray,valueArry);
        
        
        
        //可变字典NSMutableDictionary
        NSMutableDictionary *mutableDic1=[NSMutableDictionary dictionaryWithObjectsAndKeys:@"v1",@"k1",@"v2",@"k2",@"v3",@"k3",@"v4",@"k4",@"v5",@"k5", nil];
        //上面是类方法直接赋值 下面是实例方法开辟空间并赋值
        NSMutableDictionary *mutableDic=[[NSMutableDictionary alloc]initWithObjectsAndKeys:@"v1",@"k1",@"v2",@"k2",@"v3",@"k3",@"v4",@"k4",@"v5",@"k5", nil];
        
        //将一个字典中的velue和key添加到另外一个字典中
        NSDictionary *dic4=[NSDictionary dictionaryWithObject:@"v6" forKey:@"k6"];
        [mutableDic addEntriesFromDictionary:dic4];
        NSLog(@"MutableDic%@",mutableDic);
        
        //向字典中添加新的velue和key
        [mutableDic setValue:@"object" forKey:@"key"];
        NSLog(@"%@",mutableDic);
        
        
        //创建一个空的字典数组
        NSMutableDictionary *mutableDic2=[NSMutableDictionary dictionary];
        [mutableDic2 setDictionary:mutableDic];//
        NSLog(@"dic2:%@",mutableDic2);
        
        //通过制定key删除
        [mutableDic2 removeObjectForKey:@"k4"];
        NSLog(@"dic2:%@",mutableDic2);
        
        //删除多个键值
        NSArray *keys=[NSArray arrayWithObjects:@"k1",@"k2",@"k3", nil];
        [mutableDic2 removeObjectsForKeys:keys];
        NSLog(@"dic2:%@",mutableDic2);
        
        
        //删除全部键值
//        [mutableDic2 removeAllObjects];
//        NSLog(@"dic2:%@",mutableDic2);
        
        
        //遍历字典  一般的方法
        for (int index=0;index<[mutableDic1 count]; index++) {
            NSString *object=[mutableDic1 objectForKey:[[mutableDic1 allKeys]objectAtIndex:index]];
            NSLog(@"object:%@",object);
        }
        //快速枚举
        NSLog(@"____________________");
        for (NSString *key in mutableDic1) {
            NSString *object=[mutableDic1 objectForKey:key];
            NSLog(@"object:%@",object);
        }
        NSLog(@"____________________");
        //使用枚举类型
        NSEnumerator *enumerator=[mutableDic1 keyEnumerator];
        id key;
        while(key=[enumerator nextObject]){
            id object=[mutableDic1 objectForKey:key];
            NSLog(@"object:%@",object);
            
        }
    }
    return 0;
}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值