OC(四)字典

字典:像新华字典一样,

 根据拼音偏旁(key)查找想要的:值

 字典不是按顺序排放的

key 是一个关键字,可以通过关键字搜索对应的内容

 NSDictionary:字典

 字典里面的内容是成对出现的(key:值)

 key是一个关键字(字符串)

 值:只要是object类型的数据都可以



 一、字典:key - 值 对应存在的 数据集合

 字典是根据 key 来取值

key 在字典里面 是唯一的


 二、字典的赋值和初始化

 1、直接赋值

NSDictionary *dic = @{@"key":@"值",@"key1":@"值"};

 直接取值:dic[@"key"]

 2、初始化

 NSDictionary *dic = [[NSDictionary alloc]init];

 NSDictionary *dic = [NSDictionary dictionary];

NSDictionary *dic1 = [NSDictionary dictionaryWithObject:@"值"forKey:@"key"];

NSDictionary *dic1 = [NSDictionary dictionaryWithObjectsAndKeys:@"zhi",@"key", nil];


 三、通过方法 取值:

 [字典名 objectForKey:@"key"];


 获得字典里面所有的值allValues

 获得字典里面所有的键allKeys



 四、可变字典:NSMutableDictionary


--------不可变字典转换可变字典-------

NSMutableDictionary *可变字典= [NSMutableDictionary dictionaryWithDictionary:不可变字典];

 可变字典的初始化 也不可以使用直接赋值@{};

 不可变字典的初始化方法 可变字典都可以使用

 1、添加一对元素

 [字典名 setObject:zhi forKey:key];

 2、删除元素

 删除一个元素:[字典名 removeObjectForKey:@"key"];

 删除多个元素:[字典名 removeObjectsForKeys:key的数组];

 删除全部元素:[字典名 removeAllObjects];


 3、替换 存在这个key就是替换

 [字典名 setObject:zhi forKey:key];


 4、查找

 通过key查找

 字典名[key];

 [字典名 objectForKey:@"key"];


正文

#pragma ----- 初始化字典并赋值-----

 //(1)直接赋值  字典直接赋值用花括号@{};

//          key 不能一样

 NSDictionary *dic = @{@"key":@"值",@"key1":@"值"};

//字典嵌套字典

NSDictionary *dic = @{@"age":@"20",@"Like":@{@"Sports":@"PingPang",@"Art":@"SuMiao",@"Music":@"Sing"}};

 //打印出来的结果用花括号引起来,每个元素后面都有一个分号;都是成对出现。



 NSDictionary *size2 = @{@"name":@"磊欧巴",@"age":@"21",@"face":@"鹅蛋脸",@"height":@"178",@"sex":@"男",@"weight":@"60"};


        NSLog(@"%@",size);

 NSLog(@"%@",size2);


#pragma --------字典取值----

// 在同一个字典里面  key必须是唯一的

// 可以通过key取值

// 公式:字典名【@“key名”】

//        NSString *name = size2[@"name"];

//        NSLog(@"%@",name);

#pragma ----遍历字典------

//需要所有的key

//allkey 可以获得字典里面所有的key

//allValues 可以获得字典里面所有的值


NSArray *allkey = size2.allKeys;

 for (NSString *key in allkey) {

 NSLog(@"%@ = %@",key,size2[key]);

        }


#pragma --------其他初始化方式----

NSDictionary *dic = [NSDictionary dictionary];

NSDictionary *dic = [[NSDictionary alloc]init];

//‼️‼️‼️‼️‼️值和key要成对出现,先写值,key每对元素也是用逗号分开

NSDictionary *dic = [NSDictionary dictionaryWithObjectsAndKeys:@"值",@"key",@"值2",@"key",nil];

//字典取值的方法 objectForKey

NSString *value = [dicobjectForKey:@"key"];


NSDictionary *baby = [NSDictionary dictionaryWithObjectsAndKeys:@"磊欧巴",@"name",@"sleep",@"like",@"安以轩",@"love", nil];

 NSDictionary *boy = [NSDictionary dictionaryWithObjectsAndKeys:@"高傻",@"name",@"ha",@"like",@"hahaha",@"love", nil];

NSString *value = [baby objectForKey:@"name"];

NSString *value1 = [boy objectForKey:@"name"];

NSLog(@"%@",value);

NSLog(@"%@",value1);

for (NSString *key in boy.allKeys) {


NSLog(@"%@ = %@",key,boy[key]);

                }

#pragma ------初始化,并且附一个值---

 NSDictionary *dic = [NSDictionary dictionaryWithObjects:@"值"forKeys:@"key"];

#pragma ------可变字典 赋值----

//不可以直接赋值@{};

  (1) NSMutableDictionary *dic = [NSMutableDictionary dictionary];

  (2) NSMutableDictionary *dic = [[NSMutableDictionary alloc]init];

#pragma --------可变字典 增-----

//添加相同的key 会覆盖原有的key的值

NSMutableDictionary *dic = [[NSMutableDictionary alloc]init];

[dic setObject:@"内容:背着书包去上学"forKey:@"content"];

[dic setObject:@"高傻"forKey:@"name"];

NSLog(@"%@",dic);

#pragma ---------可变字典 删----

//指定key 删除key对应的值

//删除一个

[dic removeObjectForKey:@"key"];

//删除多个

[dic removeObjectsForKeys:@"key1",@"key2"];

//会移除数组里面所有key对应的值

NSArray *keys = @[@"content",@"name"];

[dic removeObjectsForKeys:keys];

NSLog(@"%@",dic);

#pragma --------可变字典 改--------

//修改和添加一样 如有有相同的key就是覆盖 没有的话就是添加

[a setObject:@"一个雨夜" forKey:@"相同的key"];

#pragma ------可变字典 查----

你可能感兴趣的:(OC(四)字典)