#import <Foundation/Foundation.h>

int main(int argc, const char * argv[]) {
@autoreleasepool {
//NSDictionary字典对象,字典主要特征是一对一的key和value组成
//不可变字典
//初始化字典,一半key值是字符串对象,控制用NSNull对象表示
NSDictionary *dic1 = [NSDictionary dictionaryWithObject:@"velue1" forKey:@"key1"];
NSDictionary *dic2 = [NSDictionary dictionaryWithObjectsAndKeys:@"value2",@"key2",@"value3",@"key3",nil];
NSDictionary *dic3 = [NSDictionary dictionaryWithDictionary:dic1];
//值与键都为数组,需要注意的是value数组与key数组的元素个数要保持一致,因为字典都是键值对,要一一对应,nil不会计入字典数量中
NSArray *arrValue = [NSArray arrayWithObjects:@"hello",@"world",@"!",@"test", nil];
NSArray *arrKey = [NSArray arrayWithObjects:@"keyOne",@"keyTow",@"keyThree",@"keytest", nil];
NSDictionary *dic4 = [NSDictionary dictionaryWithObjects:arrValue forKeys:arrKey];
NSLog(@"%@",dic2);
NSLog(@"%@",dic3);
NSLog(@"%@",dic4);
//获取字典的数量
NSInteger count = [dic4 count];
NSLog(@"%ld",count);
//通过key获取value值
NSObject *objNew = [dic2 objectForKey:@"key2"];
NSLog(@"%@",objNew);
NSObject *objtest = [dic4 objectForKey:@"keyOne"];
NSLog(@"---------%@",objtest);
//通过数组中的key匹配字典
NSArray * test = [NSArray arrayWithObjects:@"keyOne",@"keyThree", nil];
NSObject *objNew1 = [dic4 objectsForKeys:test notFoundMarker:@"error"];
NSLog(@"%@",objNew1);
//将字典的key变成一个枚举对象用于遍历
NSEnumerator *enumerator = [dic4 keyEnumerator];
//枚举遍历法(keyEnumerator)
id key = [enumerator nextObject];
while (key) {
id object = [dic4 objectForKey:key];
NSLog(@"%@",object);
key = [enumerator nextObject];//不复写key的值,会陷入死循坏
}
//获取字典所有key集合
NSArray *arrKey1 = [dic2 allKeys];
NSLog(@"%@",arrKey1);
//获取字典所有value集合
NSArray *arrValue1 = [dic2 allValues];
NSLog(@"%@",arrValue1); //可变字典
//初始化可变字典
NSMutableDictionary *mudic1 = [NSMutableDictionary dictionary];
NSLog(@"%@",mudic1);//为空
NSMutableDictionary *mudic2 = [NSMutableDictionary dictionaryWithObjectsAndKeys:@"v1",@"k1",@"v2",@"k2", nil];
//把一个字典加入到另一个字典中(把mudic2添加到mudic1中)
[mudic1 addEntriesFromDictionary:mudic2];
NSLog(@"%@",mudic1);
//给字典新添增元素
[mudic1 setObject:@"Augus" forKey:@"key1"];
NSLog(@"%@",mudic1);
//把一个字典的内容设置为跟另一个字典内容相同(把mudic1的内容设置为mudic2一样)
[mudic1 setDictionary:mudic2];
NSLog(@"%@",mudic1);
//移除字典元素
[mudic1 removeObjectForKey:@"k2"];
NSLog(@"%@",mudic1);
//快速遍历方法
for (id key in mudic2) {
id objx = [mudic2 objectForKey:key];
NSLog(@"%@",objx);
}
//常用遍历方法,首先获取到key的集合,然后通过遍历key集合来实现字典value的遍历
NSArray *keyarr = [mudic2 allKeys];
NSInteger num = [keyarr count];
for (int i=0; i<num; i++) {
id keyx = [keyarr objectAtIndex:i];
id valuex = [mudic2 objectForKey:keyx];
NSLog(@"%@",valuex);
}
}
return 0;
}

最新文章

  1. Exception in thread &quot;main&quot; java.lang.UnsupportedClassVersionError: org/apache/maven/cli/MavenCli :
  2. 用Excel创建SQL server性能报告
  3. Weblogic新增域(可以配置新端口)
  4. 开源PLM软件Aras详解四 ItemType的概念
  5. BZOJ4012 [HNOI2015]开店
  6. IOCP 浅析
  7. Data Struture 之 指针
  8. CSS伪对象选择符整理
  9. JAVA中获取工程路径的方法
  10. Xdebug的使用
  11. C#操作Json(转)
  12. 阿里云的esc
  13. css中同时用头部引入和外部引入对同一个标签进行样式设置,哪一个优先级高。
  14. 《软件project》课程报告 —国土资源执法监察管理信息系统建模
  15. Win7 + CentOS7 双系统
  16. VMware虚拟机中常见的问题汇总
  17. IWMS后台上传文章,嵌入视频,调用优酷通用代码
  18. RHEL7下用本地光盘或镜像iso文件做yum源
  19. day_5.28 py网络编程
  20. Dev的TextEdit控件IP地址的Mask设置

热门文章

  1. 安装运行okvis
  2. spring+mybatis+druid+mysql+maven事务配置
  3. 0518 Scrum 项目 5.0
  4. 自定义WPF ListBox的选中项样式
  5. FM000
  6. decode行转列,case when,
  7. 获取客户端访问的ip地址
  8. DOM事件一览表
  9. MYSQL 查看当前用户与数据库版本
  10. 一张地图,告诉你NodeJS命令行调试器语句
  11. Java面向对象 IO (一)
  12. MySQL5.7.20安装过程报错CMake Error at cmake/boost.cmake:81 (MESSAGE):
  13. 蜕变成蝶~Linux设备驱动之watchdog设备驱动
  14. codeforces 1045 D. Interstellar battle
  15. Webpack 2 视频教程
  16. 如何判断一个请求为ajax请求?
  17. 1297. [SCOI2009]迷路【矩阵乘法】
  18. [C++] Realloc Memory
  19. C++之容器(关联容器)
  20. android问题总结