浅析“字典--NSDirctionary”理论

数组:对象的引用

字典:键值对。

键Key   值value

name     Peter

age      20

2015001   student 对象

通过检查找值

一、认识字典

储存的是 键值对

name:****、

age:***

id:****

王小二18、001

name:王小二

age:18

id:001

【注】字典面向过程语言中的数据类型。字典是面向对象语言所特有的。

【NSDictionary】不可变字典,字典一旦创建好就不可以对字典的内容做任何更改,不可添加键值对,不可以删除键值对

1.创建字典

(1)NSDictionary*dict = [[NSDictionary alloc]initWithObjectAndKeys:@"1",@"one",@"2",@"two",@"3",@"three",nil];

(2)NSDictionary *dict2= [NSDictionary dictionaryWithDIctionary:dict];

(3)通过存放的数组与存放值的数组来创建字典

NSArray *keys [email protected][@"1",@“2”,@"3",@"4"];

NSArray *values = @[@"one",@"two",@"three",@"four"];

NSDictionary *dict3 = [[NSDictionary alloc]initWithObjects:values forkeys:keys];

(4)Xcode新版本中添加的方法

NSDictionary *dict= @{@"name":@"王小二",@“age”:@"18"};

[注]

1.字典中存放的是键值对。

[email protected]“one”:@"1",@"one"--key  @"1"--valaue。

3.键值对中的键 不可以重复,不可以为空,通常将字符串作为键。

4.字典中的键值没有顺序可言。

2、键值对的个数

[dict count];

3、根据key取value

[ios1555 objectForkey:@"name19"];

4、根据key取所有的value

NSArray *array3 = [dict allkeyForObject:@"one"];

5、获取所有的key所有的value

NSArray *array1=[IOS1555 allkeys];

NSArray *array2= [IOS1555 allvalue];

6、遍历字典

(1)枚举器

NSEnumerator *keyEnume = [IOS1555 keyEnumerator];

id obj;

while(obj = [keyEnume nextObject])

{

NSLog(@"%@ %@ ",obj2,[ios1555 objectForKey:obj2]);

}

for循环

for循环遍历字典

NSArray *keyArr2 = [ios1555 allkeys];

for(int i =0;i<[keyArr2 count];i++)

{

NSLog(@"%@:%@",keyArr2[i],[ios1555 objectForKey:keyArr2[i]]);

}

[NSMutableDictionary]可变字典,字典的内容是可以修改的,可以对字典进行增、删、重置等操作。

【注】凡是适用于NSDictionary 的方法都可以使用于NSMutableDictionary;

凡是要传NSDictionary参数方法,都可以传入NSMutableDictionary类型的参数

1、重置字典

[mutableDict setDictionary:@{@"1":@“one”,@"2":@"two"}];

2、增

[mutableDict setObject:@“hehe” forkey:@“one”];

【注】如果key不存在,添加键值对;如果key存在,修改key所对的value。

3、删

[mutable removeObjectForkey:@"one"];

[mutable removeAllObjects];

时间: 2024-08-07 21:20:22

浅析“字典--NSDirctionary”理论的相关文章

SOA实践之基于服务总线的设计

在上文中,主要介绍了SOA的概念,什么叫做“服务”,“服务”应该具备哪些特性.本篇中,我将介绍SOA的一种很常见的设计实践--基于服务总线的设计. 基于服务总线的设计 基于总线的设计,借鉴了计算机内部硬件组成的设计思想(通过总线传输数据).在分布式系统中,不同子系统之间需要实现相互通信和远程调用,比较直接的方式就是“点对点”的通信方式,但是这样会暴露出一些很明显的问题:系统之间紧密耦合.配置和引用混乱.服务调用关系错综复杂.难以统一管理.异构系统之间存在不兼容等.而基于总线的设计,正是为了解决上

服务总线

丁码农 SOA实践之基于服务总线的设计 在上文中,主要介绍了SOA的概念,什么叫做“服务”,“服务”应该具备哪些特性.本篇中,我将介绍SOA的一种很常见的设计实践--基于服务总线的设计. 基于服务总线的设计 基于总线的设计,借鉴了计算机内部硬件组成的设计思想(通过总线传输数据).在分布式系统中,不同子系统之间需要实现相互通信和远程调用,比较直接的方式就是“点对点”的通信方式,但是这样会暴露出一些很明显的问题:系统之间紧密耦合.配置和引用混乱.服务调用关系错综复杂.难以统一管理.异构系统之间存在不

算法竞赛中数论理论浅析

一.基本概念 带余除法(division algorithm,除法定理):a∈Z,d∈Z*,有唯一的整数 q 和 r,并且0≤r<d0,满足 a= d q+r.q 称为商,r  称为余数.通俗说法:整数除以正整数得到唯一的商(quotient)和余数(residue).  整除(divide exactly):称 a 整除 b ,当整数 a 除以非零整数 b ,商为整数,且余数为零, 我们就说a能被b整除(或说b能整除a),记作 b|a.b 称为 a 的约数(因数,common divisor)

Cartographer理论及实现浅析

概述了Cartographer的理论及简要的梳理了其开源实现代码的逻辑,目的在于起到抛砖引玉的作用,为选择性的研究相关理论及实现提供参考. 原文首发在"泡泡机器人SLAM"微信公众号:http://mp.weixin.qq.com/s/LdbFp-Zvkr02-_25ILb16g

【转】【泡泡机器人原创专栏-Cartographer】Cartographer理论及实现浅析

转自[泡泡机器人SLAM]公众号原创专栏:http://mp.weixin.qq.com/s/LdbFp-Zvkr02-_25ILb16g [作者博客]http://remyspot.blog.51cto.com/ 本文概述了Cartographer的理论及简要的梳理了其开源实现代码的逻辑,目的在于起到抛砖引玉的作用,为选择性的研究相关理论及实现提供参考. 1.Cartographer理论概述 Cartographer主要理论是通过闭环检测来消除构图过程中产生的累积误差[1].用于闭环检测的基本

浅析C++多线程编程理论与实践

写这篇博客之前,由于对多线程也不是很了解,一直觉得多线程是个很神奇的东西,但项目中又需要用到,所以借此机会学习了一下,也算做个入门总结吧,写下来总是好的!言归正传,首先介绍几个多线程相关的基本概念: 并发.并行.同步.异步.多线程的区别 1.并发:在操作系统中,是指一个时间段中有几个程序都处于已启动运行到运行完毕之间,且这几个程序都是在同一个处理机上运行.其中两种并发关系分别是同步和互斥. 2.并行:在单处理器中多道程序设计系统中,进程被交替执行,表现出一种并发的外部特征:在多处理器系统中,进程

黑马程序员--Foundation框架之--NSDirctionary类以及它的子类NSMutableDirctionary类

------IOS培训期待与您交流! ------- 今天来看一下Foundation框架中的NSDirctionary 类,NSMutableDirctionary类,OC中叫字典,字典是无序的,这个和NSArray不一样. 一.NSDirctionary类 1.创建方法 // 字典的创建 NSArray *array1 = [NSArray arrayWithObjects:@"zhangsan",@"zhangfei", nil nil]; NSArray *

[算法系列之二十]字典树(Trie)

一 概述 又称单词查找树,Trie树,是一种树形结构,是一种哈希树的变种.典型应用是用于统计,排序和保存大量的字符串(但不仅限于字符串),所以经常被搜索引擎系统用于文本词频统计. 二 优点 利用字符串的公共前缀来减少查询时间,最大限度地减少无谓的字符串比较,查询效率比哈希表高. 三 性质 (1)根节点不包含字符,除根节点外每一个节点都只包含一个字符: (2)从根节点到某一节点,路径上经过的字符连接起来,为该节点对应的字符串: (3)每个节点的所有子节点包含的字符都不相同. 单词列表为"apps&

Dictionary Learning(字典学习、稀疏表示以及其他)

第一部分 字典学习以及稀疏表示的概要 字典学习(Dictionary Learning)和稀疏表示(Sparse Representation)在学术界的正式称谓应该是稀疏字典学习(Sparse Dictionary Learning).该算法理论包含两个阶段:字典构建阶段(Dictionary Generate)和利用字典(稀疏的)表示样本阶段(Sparse coding with a precomputed dictionary).这两个阶段(如下图)的每个阶段都有许多不同算法可供选择,每种