【黑马程序员】【Foundation框架】字典NSDictionary和NSMutableDictionary
来源:互联网 发布:老九门 网络销售价格 编辑:程序博客网 时间:2024/06/07 13:24
字典 由键-值对组成的数据集合
4种创建字典方式
1>针对单个键值对 直接赋值
1 NSDictionary *dic = [NSDictionary dictionaryWithObject:@"dajie" forKey:@"name"];//直接创建字典 2 id object = [dic objectForKey:@"name"];// 取出name键对应值 3 NSLog(@"%@",object);
2>以键值对集合创建
1 NSArray *obj = @[@"dajie",@"ly"];2 NSArray *keys = @[@"name",@"address"];3 NSDictionary *dic1 = [NSDictionary dictionaryWithObjects:obj forKeys:keys];//创建字典4 NSLog(@"%@",dic1);
3>直接创建并赋值
1 NSDictionary *dic2 = [NSDictionary dictionaryWithObjectsAndKeys:@"dajie",@"name",@"ly",@"address", nil];//nil不可少2 NSLog(@"\n---%@",dic2);
3 id obj2 = [dic2 objectForKey:@"name"];//根据键取出对应的值4 NSLog(@"%@",obj2);
4>开发中常用
//xcode 新特性 开发中常用15 NSDictionary *dic3 = @{@"name" : @"dajie",@"address":@"ly",@"qq":@"12324124"};16 NSLog(@"%@\n--%@--%ld",dic3,[dic3 objectForKey:@"name"],dic3.count);
可变字典
2 NSMutableDictionary *mdic = [NSMutableDictionary dictionary];//创建
添加元素和删除元素
//添加键值对20 [mdic setObject:@"dajie" forKey:@"person"];21 [mdic setObject:@"hashiqi" forKey:@"dog"];22 [mdic setObject:@"shapi" forKey:@"dog"]; //主键一样字典元素前者会被后者覆盖23 NSString *str = mdic[@"dog"];24 NSLog(@"%@",str);25 //删除26 [mdic removeAllObjects];27 [mdic removeObjectForKey:@"dog"];28 NSLog(@"%@",mdic);
遍历元素
1基本for循环遍历
30 NSDictionary *newDic = @{31 @"name": @"dajie",32 @"dog":@"HASHIQI" };33 NSArray *key = [newDic allKeys];//取出所有的key34 for (int i; i < newDic.count; i++) {35 NSString *keys = key[i];36 NSString *value = newDic[keys];37 NSLog(@"%@ = %@",keys,value);38 }
2 简洁遍历
//推荐使用 快速遍历40 [newDic enumerateKeysAndObjectsUsingBlock:^(id key, id obj, BOOL *stop) {41 NSLog(@"%@ - %@ ",key ,obj );42 }];
总结
/* NSArray 相当于java List;// NSSet相当于java Set // NSdictionary相当于java Map // NSArray NSMutableArray有序 快速访问 @[obj1,obj2,obj3];快速访问元素 数组名[i];// NSSet NSMutableSet无序// NSDictionary NSMutableDictionary 无序 快速创建@{key1 : value1,key2 : value2};快速访问 字典名[key];*/
1 NSArray *persons = @[ 2 @{@"name" :@"dajie",@"phone":@"1234353", 3 @"books" : @[@"5分钟编程ios",@"5分钟编程Android"]}, 4 @{@"name" :@"xiaojie",@"phone":@"2234353"}, 5 @{@"name" :@"jinyu",@"phone":@"3234353",@"age" : @"1.2"} 6 ]; 7 // 先取出数组位置对应的字典 8 // 再根据字典name这个key找到对应的值 9 // NSLog(@"%@",persons[1][@"name"]);10 // NSLog(@"%@",persons[0][@"books"]);11 12 for (NSString *arrays in persons) {13 // NSInteger *lines = [persons indexOfObject:@"name"];14 // NSLog(@"%ld - %@",lines,arrays);15 NSLog(@" %@ ",arrays);16 }
0 0
- 【黑马程序员】【Foundation框架】字典NSDictionary和NSMutableDictionary
- 【黑马程序员】OC-Foundation框架—NSDictionary和NSMutableDictionary
- 黑马程序员------Foundation框架------NSDictionary字典
- 黑马程序员—Foundation框架之NSDictionary与NSMutableDictionary
- 黑马程序员——Foundation学习—-----NSDictionary和NSMutableDictionary
- 22 Foundation框架之NSDictionary和NSMutableDictionary
- Foundation框架学习之NSDictionary和NSMutableDictionary
- 黑马程序员-Foundation框架-NSDictionary
- 【黑马程序员】Foundation框架NSDictionary
- 黑马程序员——Foundation学习之NSDictionary\NSMutableDictionary
- Foundation框架中的NSDictionary 、NSMutableDictionary
- 黑马程序员---NSDictionary\NSMutableDictionary
- 黑马程序员 --- NSDictionary和NSMutableDictionary的用法
- Foundation 之 NSDictionary和NSMutableDictionary
- 05.黑马程序员-NSDictionary、NSMutableDictionary
- Foundation框架 - NSDictionary类、NSMutableDictionary类
- Foundation框架基础 NSDictionary-字典
- 固定字典NSDictionary 和 可变字典NSMutableDictionary
- 汇编浮点运算指令集
- java开发环境配置
- There is a board with
- 【版本二】手动将jar添加到maven仓库中
- python中一些比较实用的小技巧
- 【黑马程序员】【Foundation框架】字典NSDictionary和NSMutableDictionary
- BZOJ水题
- Copy List with Random Pointer
- java23种设计模式之单例模式
- R里面的tryCatch
- DataTable 两种ajax方式
- lintcode-搜索旋转排序数组II-63
- 分享一个查看android各个版本代码的网站
- 各寄存器作用