NSDictionary和NSMutableDictionary

不可变词典和可变词典

//由键值对key-value构成的数据结合
        //字典中的元素是以键值对的形式存储的
        //key为键  value为值
        //一个key只能对应一个value key一般使用字符串
        //字典的创建
        NSString *str1 = @"zhangsan" ;
        NSString *str2 = @"zhangfei" ;
        NSString *str3 = @"lisi" ;
        NSString *str4 = @"liping" ;
        
        NSArray *array1 = [NSArray arrayWithObjects:str1,str2,nil] ;
        NSArray *array2 = [NSArray arrayWithObjects:str3,str4,nil] ;
        
        //第一个元素:key:@“zhang” value :array1
        //第二个元素:key:@“li” value :array2
        NSDictionary *dict =[[NSDictionary alloc]initWithObjectsAndKeys:array1,@"zhang",array2,@"li",nil] ;
        NSLog(@"%@",dict) ;
        
        //存放一个元素
        NSDictionary *dict2 = [NSDictionary dictionaryWithObject:array1 forKey:@"zhang"] ;
        NSLog(@"dict2 = %@",dict2);
        
        //获取所有的key
        NSArray *allkeys = [dict allKeys] ;
        NSLog(@"%@",allkeys);
        
        //获取所有的value
        //可能为二维数组
        NSArray *allvalue = [dict allValues] ;
        NSLog(@"%@",allvalue) ;
        
        //通过key获取value
        NSArray *values = [dict objectForKey:@"zhang"] ;
        NSLog(@"%@",values) ;
        
        //优化的方法
        NSDictionary *dict3 = @{@"zhangsan":array1,@"lisi":array2} ;
        NSLog(@"%@",dict3) ;
        
        
        NSMutableDictionary *md1 = [[NSMutableDictionary alloc] initWithCapacity:3] ;
        NSArray *array3 = [[NSArray alloc] initWithObjects:@"zhangsan",@"lisi", nil];
        
        //添加元素
        [md1 setObject:array3 forKey:@"zhang"] ;
        NSLog(@"%@",md1);
        
        NSMutableDictionary *md2 = [[NSMutableDictionary alloc]initWithCapacity:3];
        [md2 addEntriesFromDictionary:md1] ;
        NSLog(@"%@",md2) ;
        
        //删除元素
        [md1 removeObjectForKey:@"zhang"] ; //以key删除
        NSLog(@"%@",md1) ;
        /*[md1 removeAllObjects] ;//删除所有元素
        NSLog(@"%@",md1) ;*/
        [md1 removeObjectsForKeys:array3 ] ; //以value删除
        
        
        //循环遍历
        //快速遍历
        for ( NSString *key in md1 ) {
            NSArray *value1 = [md1 objectForKey:key] ;
            for ( NSString *v in values ) {
                NSLog(@"%@",v);
            }
        }
        
        
        //普通遍历
        NSArray *allaKey = [md1 allKeys] ;
        for ( int i = 0 ; i < allaKey.count ; i ++ ) {
            NSArray *value2 = [md1 objectForKey:allaKey[i]] ;
        }

猜你喜欢

转载自blog.csdn.net/twier_/article/details/80638563