简介:字典是一种数据结构,字典里面的每一个元素,是一个key-value(键值对),key和value都是对象类型。同NSArray一样,里面的对象不用保持一致性。

NSDictionary

1、字面量初始化

// 存储时时无序的
NSDictionary *dict = @{@"name" : @"xiaoming", @"gendar" : @"man", @"age" : @""};
// 打印时根据Unicode码排序打印
NSLog(@"%@", dict);

2、实例方法初始化

NSDictionary *dict = [[NSDictionary alloc] initWithObjectsAndKeys:@"", @"age", @"man", @"gendar", @"xiaoming", @"name", nil];

3、类方法初始化

NSDictionary *dict = [NSDictionary dictionaryWithObjectsAndKeys:@"", @"age", @"man", @"gendar", @"xiaoming", @"name", nil];

4、打印key-value的对数

 NSDictionary *dict = [NSDictionary dictionaryWithObjectsAndKeys:@"", @"age", @"man", @"gendar", @"xiaoming", @"name", nil];
NSLog(@"%@", dict.count);

注意:key-value键值对中的key具有唯一性,value可以相同。也就是说,栗子如下:

NSDictionary *dict = [NSDictionary dictionaryWithObjectsAndKeys:@"", @"age", @"man", @"gendar", @"xiaoming", @"name", @"woman", @"gendar", nil];
NSLog(@"%@", dict);
====打印
{
age = ;
gendar = man;
name = xiaoming;
}
NSDictionary *dict = [NSDictionary dictionaryWithObjectsAndKeys:@"", @"age", @"man", @"gendar", @"xiaoming", @"name", @"man", @"lastGendar", nil];
NSLog(@"%@", dict);
====打印
{
age = ;
gendar = man;
lastGendar = man;
name = xiaoming;
}

5、根据key取出相应的value

NSDictionary *dict = @{@"name" : @"xiaoming", @"gendar" : @"man", @"age" : @""};

// valueForKey是NSDictionary的分类中的一个方法
NSString *nameString = [dict valueForKey:@"name"]; // objectForKey是NSDictionary本身定义的一个方法
NSString *ageString = [dict objectForKey:@"age"]; // 根据下标符取出value
NSString *gendarString = dict[@"gendar"];

NSLog(@"~~~~~~~~~~%@~~~~~~~~~~%@~~~~~~~~~~%@", nameString, ageString, gendarString);
====打印
~~~~~~~~~~xiaoming~~~~~~~~~~~~~~~~~~~~man

6、取出字典中所有的key、所有的value

NSDictionary *dict = @{@"name" : @"xiaoming", @"gendar" : @"man", @"age" : @""};
NSArray *keyArray = [dict allKeys];
NSArray *valueArray = [dict allValues];
NSLog(@"\n%@\n%@", keyArray, valueArray);
====打印
(
name,
gendar,
age
)
(
xiaoming,
man, )

7、判断两个字典对象是否相同

NSDictionary *dict1 = @{@"name" : @"小明", @"gendar" : @"男", @"age" : @""};
NSDictionary *dict2 = @{@"name" : @"小红", @"gendar" : @"男", @"age" : @""};
BOOL bo = [dict1 isEqualToDictionary:dict2];
NSLog(@"%@", bo ? @"两者相同" : @"两者不相同");
====打印
两者不相同

NSMutableDictionary

1、构建方法初始化

NSMutableDictionary *mDict = [[NSMutableDictionary alloc] init];

2、类方法初始化

NSMutableDictionary *mDict = [NSMutableDictionary dictionary];

3、根据key值修改对应的value(找不到对应的key,就相当于添加这一对key-value)

NSMutableDictionary *mDict = [NSMutableDictionary dictionaryWithObjectsAndKeys:@"", @"age", @"man", @"gendar", @"xiaoming", @"name", @"woman",
@"gendar", nil];
[mDict setObject:@"" forKey:@"age"];
[mDict setObject:@"China" forKey:@"address"];
NSLog(@"%@", mDict);
====打印
{
address = China;
age = ;
gendar = woman;
name = xiaoming;
}

4、根据key删除key-value键值对

NSMutableDictionary *mDict = [NSMutableDictionary dictionaryWithObjectsAndKeys:@"", @"age", @"man", @"gendar", @"xiaoming", @"name", @"woman",
@"gendar", nil];
[mDict removeObjectForKey:@"name"];
NSLog(@"%@", mDict);
====打印
{
age = ;
gendar = woman;
}

5、使用一个字典重置可变字典

 NSMutableDictionary *dict1 = [NSMutableDictionary dictionaryWithObjectsAndKeys:@"", @"age", @"man", @"gendar", nil];
NSMutableDictionary *dict2 = [NSMutableDictionary dictionaryWithObjectsAndKeys:@"", @"age", @"woman", @"gendar", nil];
[dict2 setDictionary:dict1];
NSLog(@"%@", dict2);
====打印
{
age = ;
gendar = man;
}

----暂时这么多

字典NSDictionary和NSMutableDictionary的使用的更多相关文章

  1. 字典NSDictionary以及NSMutableDictionary的用法总结

    做过Java语言 或者 C语言 开发的朋友应该很清楚 关键字map 吧,它可以将数据以键值对儿的形式储存起来,取值的时候通过KEY就可以直接拿到对应的值,非常方便.在Objective-C语言中 词典 ...

  2. IOS字典NSDictionary与NSMutableDictionary知识点

    字典中的元素是以键值对的形式存储的,键值对的键和值,都是任意的对象,但是键往往使用字符串,字典存储对象的地址没有顺序,字典的遍历分为:键的遍历和值的遍历,字典与数组的区别:数组讲究顺序,而字典可以快速 ...

  3. Foundation框架--字典( NSDictionary NSMutableDictionary )

    基础知识 1.字典不允许相同的key,但允许有相同的value. 2,字典是无序的,字典不能排序. 3.字典里的内容是成对存在的,不会出现单数. 4.快速创建的方式只适合不可变字典. 不可变字典 #i ...

  4. iOS常用 --- NSDictionary 与 NSMutableDictionary

    一.NSDictionary 字典的两种创建方法 NSDictionary *dic1 =[[NSDictionary alloc]init]; 2 // 或: 3 NSDictionary *dic ...

  5. 黑马程序员-NSDictionary和NSMutableDictionary

    NSDictionary和NSMutableDictionary:通过key和value进行对应,进行存储元素,能够方便提取所需的元素.key是不能够重复出现,但是value能够重复出现.NSDict ...

  6. OC中的字典NSDictionary

    ========================== 字典 ========================== NSDictionary * dict = [[NSDictionary alloc] ...

  7. NSDictionary、NSMutableDictionary及其枚举器的用法

    .不可变词典NSDictionary 字典初始化 NSNumber *numObj = [NSNumber numberWithInt:]; 以一个元素初始化 NSDictionary *dic = ...

  8. NSDictionary、NSMutableDictionary的基本用法

    NSDictionary.NSMutableDictionary的基本用法 1.不可变词典NSDictionary 字典初始化 NSNumber *numObj = [NSNumber numberW ...

  9. (转载)目前最细致清晰的NSDictionary以及NSMutableDictionary用法总结

    文章转载自:http://www.cnblogs.com/wengzilin/archive/2012/03/15/2397712.html 做过Java语言 或者 C语言 开发的朋友应该很清楚 关键 ...

随机推荐

  1. EVE上传Dynamips、IOL和QEMU镜像

    1.镜像保存目录: /opt/unetlab/addons ---/dynamips   Dynamips镜像保存目录 ---/iol               IOL镜像保存目录(运行IOU的镜像 ...

  2. Strategic game POJ - 1463

    题目链接 依旧是树形dp啦,一样的找根节点然后自下而上更新即可 设\(dp_{i,0}\)表示第i个不设,\(dp_{i,1}\)表示第i个设一个,容易得到其状态转移 \(dp_{i,0} = \su ...

  3. MyBatis-Plus学习笔记(3):分页查询

    依赖配置可参考:MyBatis-Plus学习笔记(1):环境搭建以及基本的CRUD操作 分页配置 @Configuration public class PlusConfig { @Bean publ ...

  4. 【Go语言系列】1.1、GO语言简介:什么是GO语言

    一.Go的起源 Go语言的所有设计者都说,设计Go语言是因为 C++ 给他们带来了挫败感.在 Google I/O 2012 的 Go 设计小组见面会上,Rob Pike 是这样说的: 我们做了大量的 ...

  5. [0CTF 2016] piapiapia

    一道非常有意思的反序列化漏洞的题目 花费了我不少时间理解和记忆 这里简单记录其中精髓 首先打开是一个登陆页面 dirsearch扫描到了www.zip源码备份 update.php <?php ...

  6. Fast Queries

    传送门 #include <iostream> #include <cstdio> #include <cstring> #include <cmath> ...

  7. 任意值运动框架Move模块 js

    function getStyle(obj, name) { if (obj.currentStyle) { return obj.currentStyle[name]; } else { retur ...

  8. 判断一个数组是否包含一个指定的值 includes-ES6

    var array1 = [1, 2, 3]; console.log(array1.includes(2));  // trueconsole.log(array1.includes(2, 5)); ...

  9. Python学习第二十六课——PyMySql(python 链接数据库)

    Python 链接数据库: 需要先安装pymysql 包 可以设置中安装,也可以pip install pymysql 安装 加载驱动: import pymysql # 需要先安装pymysql 包 ...

  10. 构造数列Huffman树总耗费_蓝桥杯

    快排! /** 问题描述 Huffman树在编码中有着广泛的应用.在这里,我们只关心Huffman树的构造过程. 给出一列数{pi}={p0, p1, …, pn-1},用这列数构造Huffman树的 ...