Object-C代码练习【集合_字典类型】
博客专区 > TomatosX 的博客 > 博客详情
Object-C代码练习【集合_字典类型】
TomatosX 发表于3年前
Object-C代码练习【集合_字典类型】
  • 发表于 3年前
  • 阅读 5
  • 收藏 0
  • 点赞 0
  • 评论 0

【腾讯云】如何购买服务器最划算?>>>   

摘要: 不可变字典(NSDictionary)和可变字典(NSMutableDictionary)的一些用法
//
//  main.m
//  集合_字典类型
//
//  Created by on 14-10-6.
//  Copyright (c) 2014年 apple. All rights reserved.
//

#import <Foundation/Foundation.h>

int main(int argc, const char * argv[]) {
    @autoreleasepool {
///////////////////////////////////////////////不可变字典///////////////////////////////////////////////
        NSNumber *number1 = [NSNumber numberWithInteger:100];
        NSNumber *number2 = [NSNumber numberWithInteger:200];
//        初始化一个元素
        NSDictionary *dic1 = [NSDictionary dictionaryWithObject:number1 forKey:@"numberKey"];
        NSLog(@"%@", dic1);
//        初始化多个元素
        NSDictionary *dic2 = [NSDictionary dictionaryWithObjectsAndKeys:number1, @"number1", number2, @"number2", nil];
        NSLog(@"%@", dic2);
//        从已有的字典中创建字典
        NSDictionary *dic3 = [NSDictionary dictionaryWithDictionary:dic2];
        NSLog(@"%@", dic3);
//        遍历key的值方法一
        for(NSObject *obj in dic2) {
            NSLog(@"迭代key方法一:%@", obj);
        }
//        遍历key的值方法er
        NSEnumerator *enumKey = [dic2 keyEnumerator];
        for (NSString *key in enumKey) {
            NSLog(@"迭代key方法二:%@", key);
        }
        
//        遍历value方法一
        NSEnumerator *enumValue = [dic2 objectEnumerator];
        for (NSObject *obj in enumValue) {
            NSLog(@"迭代value方法一:%@", obj);
        }
        
        NSLog(@"根据key取得value:%@", [dic2 objectForKey:@"number1"]);
        
        NSLog(@"字典数量:%ld", [dic2 count]);
        
//        获取所有key的集合
        NSArray *keyArray = [dic2 allKeys];
        for (NSObject *obj in keyArray) {
            NSLog(@"迭代key方法三:%@", obj);
        }
        
//        获取所有value集合
        NSArray *valueArray = [dic2 allValues];
        NSEnumerator *valueEnum = [valueArray objectEnumerator];
        id tmp = [valueEnum nextObject];
        while (tmp) {
            NSLog(@"迭代value方法二:%@", tmp);
            tmp = [valueEnum nextObject];
        }
        
//        一般枚举
        NSArray *keys = [dic2 allKeys];
        int length = (int)[keys count];
        for (int i = 0; i < length; i++) {
            id key = [keys objectAtIndex:i];
            id obj = [dic2 objectForKey:key];
            NSLog(@"一般枚举:%@", obj);
        }
        
        
///////////////////////////////////////////////可变字典///////////////////////////////////////////////
        NSMutableDictionary *muDic1 = [NSMutableDictionary dictionaryWithObjectsAndKeys:@"v1", @"key1", @"v2", @"key2", nil];
        NSMutableDictionary *muDic2 = [NSMutableDictionary dictionaryWithObjectsAndKeys:@"v3", @"key3", nil];
//        向字典1中添加字典2
        [muDic1 addEntriesFromDictionary:muDic2];
        NSLog(@"%@", muDic1);
        
//        向字典2中追加新值
        [muDic2 setObject:@"v4" forKey:@"key4"];
        NSLog(@"%@", muDic2);
        
//        初始化一个新的可变字典
        NSMutableDictionary *muDic3 = [NSMutableDictionary dictionary];
        NSLog(@"%@", muDic3);
        
//        将空字典3数据对象设置为字典1相同
        [muDic3 setDictionary:muDic1];
        NSLog(@"%@", muDic3);
        
//        将字典3中key1对应的值删除
        [muDic3 removeObjectForKey:@"key3"];
        NSLog(@"%@", muDic3);
        
//        根据指定的数组(key)删除字典3中的内容
        NSArray *keysArray = [NSArray arrayWithObjects:@"key1", @"key2", nil];
        [muDic3 removeObjectsForKeys:keysArray];
        NSLog(@"%@", muDic3);
        
//        移除字典中的所有对象
        [muDic2 removeAllObjects];
        NSLog(@"%@", muDic2);
    }
    return 0;
}



共有 人打赏支持
粉丝 22
博文 143
码字总数 119547
×
TomatosX
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: