【OC05-1】字典、可变字典 (连载六)
来源:互联网 发布:图书馆管理系统数据库 编辑:程序博客网 时间:2024/05/17 22:26
//************* NSDictionary ***************************
//注意:Person。m 文件中重写了description方法
- (NSString*)description
{
return [NSStringstringWithFormat:@"<Person:%p>---%@---%ld",self,_name,_age];
{
return [NSStringstringWithFormat:@"<Person:%p>---%@---%ld",self,_name,_age];
}
main.m中
//初始化一个字典
//注意:字典中所装的数据类型:对象类型,,不可以是基本数据类型
//字典是无序的
//key通常是字符串,key必须唯一
NSDictionary *dic1 = [[NSDictionaryalloc]initWithObjectsAndKeys:@"v1",@"k1",@"v2",@"k2",nil];
NSLog(@"dic1 is %@",dic1);
//创建空的数据字典
NSDictionary *nullDic = [NSDictionarydictionary];
NSLog(@"nullDic is %@",nullDic);
//创建Person对象
Person *zhangsan = [[Person alloc]init];
zhangsan.name =@"张三";
zhangsan.age = 20;
Person *lisi = [[Person alloc]init];
lisi.name = @"李四";
lisi.age = 22;
Person *wangwu = [[Person alloc]init];
wangwu.name = @"王五";
wangwu.age = 23;
//创建一个数组names
NSArray *names = @[zhangsan, lisi, wangwu];
NSDictionary *dic2 = [[NSDictionaryalloc]initWithObjectsAndKeys:
@"v1",@"k1",
@"v2",@"k2",
@"v3",@"k3",
names,@"k4",nil];
NSLog(@"dic2 is %@",dic2);
//从字典中取值,
//如果这个key不存在,则返回NULL
NSString *str1 = [dic2objectForKey:@"k1"];
NSString *str2 = [dic2objectForKey:@"k2"];
NSString *str3 = [dic2objectForKey:@"k5"];
NSLog(@"str1 is %@", str1);
NSLog(@"str2 is %@", str2);
NSLog(@"str3 is %@", str3);
//取出字典中的数组中的第一个元素的姓名
// NSArray *arr = [dic2 objectForKey:@"k4"];
// Person *ps = [arr objectAtIndex:0];
// //嵌套调用
Person *ps = [[dic2 objectForKey:@"k4"] objectAtIndex:0];
NSLog(@"ps name is %@",ps.name);
//字典中键值对的个数
NSInteger count = dic2.count;
NSLog(@"count is %ld",count);
//取出字典中所有的key
NSArray *keys = [dic2allKeys];
NSLog(@"keys is %@",keys);
//取出字典中所有的value
NSArray *values = [dic2allValues];
NSLog(@"values is %@",values);
//字典的快速创建与取值
NSDictionary *dic3 =@{@"k1":@"v1",
@"k2": @"v2",
@"k3": @"v3"};
NSString *v1 = dic3[@"k1"];
NSLog(@"dic3 is %@",dic3);
//注意:字典中所装的数据类型:对象类型,,不可以是基本数据类型
//字典是无序的
//key通常是字符串,key必须唯一
NSDictionary *dic1 = [[NSDictionaryalloc]initWithObjectsAndKeys:@"v1",@"k1",@"v2",@"k2",nil];
NSLog(@"dic1 is %@",dic1);
//创建空的数据字典
NSDictionary *nullDic = [NSDictionarydictionary];
NSLog(@"nullDic is %@",nullDic);
//创建Person对象
Person *zhangsan = [[Person alloc]init];
zhangsan.name =@"张三";
zhangsan.age = 20;
Person *lisi = [[Person alloc]init];
lisi.name = @"李四";
lisi.age = 22;
Person *wangwu = [[Person alloc]init];
wangwu.name = @"王五";
wangwu.age = 23;
//创建一个数组names
NSArray *names = @[zhangsan, lisi, wangwu];
NSDictionary *dic2 = [[NSDictionaryalloc]initWithObjectsAndKeys:
@"v1",@"k1",
@"v2",@"k2",
@"v3",@"k3",
names,@"k4",nil];
NSLog(@"dic2 is %@",dic2);
//从字典中取值,
//如果这个key不存在,则返回NULL
NSString *str1 = [dic2objectForKey:@"k1"];
NSString *str2 = [dic2objectForKey:@"k2"];
NSString *str3 = [dic2objectForKey:@"k5"];
NSLog(@"str1 is %@", str1);
NSLog(@"str2 is %@", str2);
NSLog(@"str3 is %@", str3);
//取出字典中的数组中的第一个元素的姓名
// NSArray *arr = [dic2 objectForKey:@"k4"];
// Person *ps = [arr objectAtIndex:0];
// //嵌套调用
Person *ps = [[dic2 objectForKey:@"k4"] objectAtIndex:0];
NSLog(@"ps name is %@",ps.name);
//字典中键值对的个数
NSInteger count = dic2.count;
NSLog(@"count is %ld",count);
//取出字典中所有的key
NSArray *keys = [dic2allKeys];
NSLog(@"keys is %@",keys);
//取出字典中所有的value
NSArray *values = [dic2allValues];
NSLog(@"values is %@",values);
//字典的快速创建与取值
NSDictionary *dic3 =@{@"k1":@"v1",
@"k2": @"v2",
@"k3": @"v3"};
NSString *v1 = dic3[@"k1"];
NSLog(@"dic3 is %@",dic3);
NSLog(@"vi is %@",v1);
【可变字典 NSMutableDictionary】
#import<Foundation/Foundation.h>
intmain(intargc, const char * argv[]) {
@autoreleasepool {
//******************* NSMutableDictionary *********************************
//初始化空的字典
NSMutableDictionary *dic1 = [NSMutableDictionarydictionary];
//给字典预期的空间
// NSMutableDictionary *dic2 = [NSMutableDictionary dictionaryWithCapacity:5];
//添加元素
[dic1 setObject:@"v1"forKey:@"k1"];
[dic1 setObject:@"v2"forKey:@"k2"];
[dic1 setObject:@"v3"forKey:@"k3"];
NSLog(@"dic1 is %@",dic1);
//设置键值对,如果key已经存在,则是修改key所对应的value,如果不存在,则创建一个新的键值对
[dic1 setObject:@"v5"forKey:@"k5"];
NSLog(@"dic1 is %@",dic1);
//根据key删除元素
[dic1 removeObjectForKey:@"k5"];
NSLog(@"dic1 is %@",dic1);
//删除所有元素
[dic1 removeAllObjects];
NSLog(@"dic1 is %@",dic1);
//字典的遍历
NSDictionary *dic =@{@"k1":@"v1",
@"k2": @"v2",
@"k3": @"v3",
@"k4": @"v4",
@"k5": @"v5"};
NSArray *keys = [dicallKeys];
//传统遍历
for (inti = 0; i < dic.count; i++) {
//获取key
NSString *key = [keysobjectAtIndex:i];
NSString *value = [dicobjectForKey:key];
NSLog(@"key:%@-------value:%@",key, value);
}
//快速遍历
//拿到的是key
for (idkey in dic) {
id value = [dic objectForKey:key];
NSLog(@"key:%@-------value:%@",key, value);
}
}
return 0;
}
0 0
- 【OC05-1】字典、可变字典 (连载六)
- OC05 字典/数组
- 字典 可变字典 大杂烩
- 可变字典
- Python(六)字典
- 字典的常用方法(含可变字典)
- OC_字典(可变不可变都有^_^)
- NSMutableDictionary--可变字典
- NSMutableDictionary(可变字典)
- OC中的可变字典
- 可变字典(NSMutableDictionary)简介
- OC--NSMutableDictionary可变字典
- 字典:NSDictionary(不可变字典)、NSMutableDictionary(可变字典)、字面量
- 固定字典NSDictionary 和 可变字典NSMutableDictionary
- 字典 不可变字典NSDictionary 可变字典NSMutableDictionary
- Object-c之可变字典
- OC-048.NSMutableDictionary可变字典
- 六、python中的字典
- 行为型模式-策略模式
- 二分查找
- Android 5.0内核和源代码学习(2)——源码下载和系统启动过程分析
- 2012 素数判定
- 南阳 oj 擅长排列的小明 题目19
- 【OC05-1】字典、可变字典 (连载六)
- 列表初始化
- 怎么激活win10企业版系统
- SQL注入的方法和解决方案
- 谈谈 final、finally、finalize 的区别
- Android Studio在集成了ShardSDK的项目中进行代码混淆
- bzoj-1132 Tro
- 窗口创建贴图
- 【OC05-2】NSSet、NSNumber、NSValue、NSDate、异常处理(连载七)