当前位置: 首页 > news >正文

字典的基本概念和常用方法

字典使用Key-Value的形式储存数据。
字典中的对象储存没有顺序,使用key来表示每个对象。
cocoa框架中的字典:NSDictionary和NSMutableDictionary
NSMutableDictionary是NSictionary的子类,能使用其所有方法。
NSMutableDictionary是NSDictionary的可修改版本

 

复制代码
 1 #import
 2 int main(int argc, const char * argv[])
 3 {
 4     @autoreleasepool {
 5         //不可变字典NSDictionary
 6         //字典的创建
 7         NSDictionary *dic1=[NSDictionary dictionaryWithObject:@"velue" forKey:@"k1"];//一个键 一个值
 8         NSDictionary *dic2=[NSDictionary dictionaryWithObjectsAndKeys:@"v1",@"k1",@"v2",@"k2",@"v3",@"k3",@"v4",@"k4",@"v5",@"k5",nil];//创建多个键 多个值
 9         NSDictionary *dic3=[NSDictionary dictionaryWithDictionary:dic1];//直接把dic内容给dic3
10         NSLog(@"dic1:%@",dic1);
11         NSLog(@"dic2:%@",dic2);
12         NSLog(@"dic3:%@",dic3);
13         
14         //获取字典的数量
15         int count=[dic2 count];
16         NSLog(@"%d",count);
17         //获取k3的value
18         NSString *string=[dic2 objectForKey:@"k3"];
19         NSLog(@"value:%@",string);
20         
21         //获取字典中所有的key和value
22         NSArray *keyArray=[dic2 allKeys];
23         NSArray *valueArry=[dic2 allValues];
24         NSLog(@"keyArray:%@valueArry:%@",keyArray,valueArry);
25         
26         
27         ////
28         //可变字典NSMutableDictionary
29         NSMutableDictionary *mutableDic1=[NSMutableDictionary dictionaryWithObjectsAndKeys:@"v1",@"k1",@"v2",@"k2",@"v3",@"k3",@"v4",@"k4",@"v5",@"k5", nil];
30         //上面是类方法直接赋值 下面是实例方法开辟空间并赋值
31         NSMutableDictionary *mutableDic=[[NSMutableDictionary alloc]initWithObjectsAndKeys:@"v1",@"k1",@"v2",@"k2",@"v3",@"k3",@"v4",@"k4",@"v5",@"k5", nil];
32         
33         //将一个字典中的velue和key添加到另外一个字典中
34         NSDictionary *dic4=[NSDictionary dictionaryWithObject:@"v6" forKey:@"k6"];
35         [mutableDic addEntriesFromDictionary:dic4];
36         NSLog(@"MutableDic%@",mutableDic);
37         
38         //向字典中添加新的velue和key
39         [mutableDic setValue:@"object" forKey:@"key"];
40         NSLog(@"%@",mutableDic);
41         
42         
43         //创建一个空的字典数组
44         NSMutableDictionary *mutableDic2=[NSMutableDictionary dictionary];
45         [mutableDic2 setDictionary:mutableDic];//
46         NSLog(@"dic2:%@",mutableDic2);
47         
48         //通过制定key删除
49         [mutableDic2 removeObjectForKey:@"k4"];
50         NSLog(@"dic2:%@",mutableDic2);
51         
52         //删除多个键值
53         NSArray *keys=[NSArray arrayWithObjects:@"k1",@"k2",@"k3", nil];
54         [mutableDic2 removeObjectsForKeys:keys];
55         NSLog(@"dic2:%@",mutableDic2);
56         
57         
58         //删除全部键值
59         //        [mutableDic2 removeAllObjects];
60         //        NSLog(@"dic2:%@",mutableDic2);
61         
62         
63         //遍历字典  一般的方法
64         for (int index=0;index<[mutableDic1 count]; index++) {
65             NSString *object=[mutableDic1 objectForKey:[[mutableDic1 allKeys]objectAtIndex:index]];
66             NSLog(@"object:%@",object);
67         }
68         //快速枚举
69         NSLog(@"____________________");
70         for (NSString *key in mutableDic1) {
71             NSString *object=[mutableDic1 objectForKey:key];
72             NSLog(@"object:%@",object);
73         }
74         NSLog(@"____________________");
75         //使用枚举类型
76         NSEnumerator *enumerator=[mutableDic1 keyEnumerator];
77         id key;
78         while(key=[enumerator nextObject]){
79             id object=[mutableDic1 objectForKey:key];
80             NSLog(@"object:%@",object);
81             
82         }
83     }
84     return 0;
85 }
复制代码

 

来源:http://blog.sina.com.cn/s/blog_b6e3f37101019luc.html



本文转自夏雪冬日博客园博客,原文链接:http://www.cnblogs.com/heyonggang/p/3449089.html,如需转载请自行联系原作者

相关文章:

  • WebService-06-CXF与Spring集成
  • 浏览器history操作实现一些功能
  • SVM挑战SVC 存储虚拟化市场的博弈
  • 专访英特尔(中国)开源技术中心:HTML5要如何达到原生性能
  • IOS9中出现的错误
  • Linux下获取帮助
  • IC卡和RFID卡的区别(网上说的都不准确)
  • Effective C++ 条款26
  • 文件上传利器JQuery上传插件Uploadify
  • Ubuntu菜鸟入门(六)—— 有道词典安装
  • jQuery.form开发手记
  • EF只更新变化的字段
  • OC内存管理
  • MySQL入门(二)
  • 助力合作伙伴引领“互联网+”变革 浪潮预发布高端存储
  • JavaScript-如何实现克隆(clone)函数
  • 10个最佳ES6特性 ES7与ES8的特性
  • CSS盒模型深入
  • FineReport中如何实现自动滚屏效果
  • JavaScript DOM 10 - 滚动
  • Java读取Properties文件的六种方法
  • learning koa2.x
  • PyCharm搭建GO开发环境(GO语言学习第1课)
  • windows下如何用phpstorm同步测试服务器
  • 创建一个Struts2项目maven 方式
  • 工程优化暨babel升级小记
  • 猫头鹰的深夜翻译:JDK9 NotNullOrElse方法
  • 免费小说阅读小程序
  • 面试遇到的一些题
  • 浅析微信支付:申请退款、退款回调接口、查询退款
  • 硬币翻转问题,区间操作
  • 云栖大讲堂Java基础入门(三)- 阿里巴巴Java开发手册介绍
  • Mac 上flink的安装与启动
  • 新年再起“裁员潮”,“钢铁侠”马斯克要一举裁掉SpaceX 600余名员工 ...
  • ​第20课 在Android Native开发中加入新的C++类
  • #14vue3生成表单并跳转到外部地址的方式
  • $.ajax,axios,fetch三种ajax请求的区别
  • (02)Hive SQL编译成MapReduce任务的过程
  • (1)(1.13) SiK无线电高级配置(五)
  • (10)ATF MMU转换表
  • (二)PySpark3:SparkSQL编程
  • (力扣记录)235. 二叉搜索树的最近公共祖先
  • (十一)JAVA springboot ssm b2b2c多用户商城系统源码:服务网关Zuul高级篇
  • (学习日记)2024.01.19
  • (已解决)什么是vue导航守卫
  • (转载)微软数据挖掘算法:Microsoft 时序算法(5)
  • .cfg\.dat\.mak(持续补充)
  • .net 验证控件和javaScript的冲突问题
  • .NET(C#、VB)APP开发——Smobiler平台控件介绍:Bluetooth组件
  • .net6+aspose.words导出word并转pdf
  • .NET中使用Protobuffer 实现序列化和反序列化
  • @value 静态变量_Python彻底搞懂:变量、对象、赋值、引用、拷贝
  • [ CTF ] WriteUp- 2022年第三届“网鼎杯”网络安全大赛(朱雀组)
  • [AR]Vumark(下一代条形码)
  • [BZOJ 4129]Haruna’s Breakfast(树上带修改莫队)