您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 信息化管理 > OC_经典笔记字典的使用
CopyRight:zhangjianjun2015年9月11日星期五1字典的使用主题一、字典类1、字典类只能存储对象2、对象的数量和类型没有限制3、字典存储数据时是无序的,只能靠标签存储和查找4、字典中存储的内容:键值对key/value二、NSDictionary不可变字典类1、@+数字等价于=[NSNumbernumberWithInt:18]NSDictionary*dic=[[NSDictionaryalloc]initWithObjectsAndKeys:@yihuiyun,@name,@female,@gender,@18,@age,nil];NSLog(@%@,dic);(打印的结果键值对之间使用;分隔,数组中使用,分隔。字典外面是靠{}来分隔,数组中是靠()进行分隔的);2、字典中所有的key必须是唯一不重复的,value是可以存在重复现象的3、NSString*name=[dicobjectForKey:@“name”];(根据某个key访问字典中的value)NSLog(@%@,name);如果在获取value时使用的key不存在,返回nil用于判断字典中是否存储了某个对象4、获取字典中所有的keyNSArray*key=[dicallKeys];NSLog(@“%@,key);5、获取字典中所有的valueNSArray*value=[dicallValues];NSLog(@“%@,value);6、遍历字典的方法之一:遍历allkeys,通过遍历得到的key,从字典中获取对应的valuefor(inti=0;ikey.count;i++){NSString*key1=key[i];NSObject*value=[dicobjectForKey:key1];NSLog(@%@%@,key1,value);}CopyRight:zhangjianjun2015年9月11日星期五2{方法糖只适用于不可变的}三、可变字典类1、NSMutableDictionary*dic=[NSMutableDictionarydictionary];//遍历构造器方法创建字典对象2、//添加对象,键值对[dicsetObject:@yihuiyunforKey:@name];[dicsetObject:@femalforKey:@gender];[dicsetObject:@18forKey:@age];setObject是针对可变数组进行的操作3、修改某个值和定义的方法是同一个[dicsetObject:@19forKey:@age];NSLog(@%@,dic);如果key已经存在,属于修改,如果key不存在属于添加4、删除(移除)[dicremoveObjectForKey:@age];NSLog(@%@,dic);[dicremoveAllObjects];NSLog(@“%@,dic);实例演示://场景1:创建字典存储一个学生的信息(姓名,学号)场景2:创建数组存储三个学生,学生使用字典表示NSDictionary*stuDic1=[NSDictionarydictionaryWithObjectsAndKeys:@yangyi,@name,@1,@number,nil];NSDictionary*stuDic2=[NSDictionarydictionaryWithObjectsAndKeys:@huge,@name,@2,@number,nil];NSDictionary*stuDic3=[NSDictionarydictionaryWithObjectsAndKeys:@ergou,@name,@3,@number,nil];dictionaryWithObjectsAndKeys向字典中添加元素NSArray*stuArray=[NSArrayarrayWithObjects:stuDic1,stuDic2,stuDic3,nil];arrayWithObjects:向数组中添加对象NSLog(@“%@,stuArray);场景3:创建字典,存储一个班级的信息(班级名,所有学生),学生还是使用字典表示CopyRight:zhangjianjun2015年9月11日星期五3className@BJS150833;stuArray数组对象(存储3个学生,学生使用3个字典);NSDictionary*classDic=[NSDictionarydictionaryWithObjectsAndKeys:@BJS150833,@className,stuArray,@stuArray,nil];NSLog(@%@,classDic);场景4创建数组存储两个班,每个班使用字典表示第一个班已经创建完成,即classDic创建第二个班第一步创建班级内所有的学生NSDictionary*stuDic21=[NSDictionarydictionaryWithObjectsAndKeys:@xiaowue,@name,@21,@number,nil];NSDictionary*stuDic22=[NSDictionarydictionaryWithObjectsAndKeys:@xiaoyi,@name,@22,@number,nil];NSDictionary*stuDic23=[NSDictionarydictionaryWithObjectsAndKeys:@xuxu,@name,@23,@number,nil];第二步创建数组存储所有的学生,数组用于存储在表示班级的字典中NSArray*stuArray2=@[stuDic21,stuDic22,stuDic23];//语法糖第三步创建表示班级的字典NSDictionary*classDic2=@{@className:@“BJS1034”,@“stuArray”:stuArray2};(语法糖)NSLog(@%@,classDic2);NSArray*classArray=@[classDic,classDic2];NSLog(@%@,classArray);场景5:创建字典对象,表示学校:学校名、所有的班级NSDictionary*schoolDic=@{@schoolName:@lanou,@classArray:classArray};NSLog(@“%@,schoolDic);CopyRight:zhangjianjun2015年9月11日星期五4创建数组和字典都可以使用语法糖,但是语法糖创建的是不可变的对象使用字典管理数据的优势:可以使用key访问存储的数据7、快速遍历for-可以对数组、字典、集进行所有元素的访问8、1、快速遍历数组NSArray*arr1=@[@12,@23,@34];for(NSString*objinarr1){在快速遍历循环的内部,obj指向某个遍历到的对象NSIntegera=[arr1indexOfObject:obj];//获取数组元素的下标NSLog(@%lu%@,a,obj);}2、快速遍历字典NSDictionary*dic=@{@name:@yihuiyun,@age:@14};//对字典进行快速遍历得到的是keyfor(NSString*keyindic){idvalue=[dicobjectForKey:key];idvalue=dic[key];NSLog(@%@%@,key,value);}在快速遍历时,不要增加、删除存储的数据枚举--列举
本文标题:OC_经典笔记字典的使用
链接地址:https://www.777doc.com/doc-2890055 .html