NSDectionary字典:它是一个存储键值的容器,每一个键key都对应着一个值value,可以通过键key一次性找到目标值value,这是一个比较好的存储器,相比于数组而言,它明显提高了查询效率。同时,它存储数据的方式采用的是哈希存储,因此它的存储的数据是无序的。

NSDectionary字典的主要操作有:创建、遍历等,,,

//

//  main.m

//  03-NSDectionary

//

//  Created by ma c on 15/8/18.

//  Copyright (c) 2015年 bjsxt. All rights reserved.

//

#import <Foundation/Foundation.h>

int main(int argc, const char * argv[])

{

@autoreleasepool

{

//NSDectionary字典对象,字典中存储的是键值对 key:value,键一般是采用字符串NSString

//1.创建

NSDictionary *dic = @{@"one":@1,@"two":@2,@"three":@3};

NSLog(@"%@",dic);

//字典采取哈希表的形式存储,在查找对象的时候非常的块,接近一次命中。

NSDictionary *dic2 = [NSDictionary dictionaryWithObjectsAndKeys:@1,@"one",@2,@"two",@3,@"three",nil];

NSLog(@"%@",dic2);

//2.枚举遍历

for(id key in dic2)

{

//NSLog(@"%@=%@",key,[dic2 objectForKey:key]);

NSLog(@"%@=%@",key,dic2[key]);

}

//Block遍历

[dic2 enumerateKeysAndObjectsUsingBlock:^(id key, id obj, BOOL *stop) {

NSLog(@"%@=%@",key,dic2[key]);

if([key isEqualToString:@"three"])

{

*stop = YES;

}

}];

//取出所有的key遍历

NSArray *keys = [dic2 allKeys];

[keys enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop) {

NSLog(@"%@=%@",obj,[dic2 objectForKey:obj]);

}];

//        NSArray *value = [dic2 allValues];

//        [value enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop) {

//            NSLog(@"%@",obj);

//        }];//取出所有的value值

//3.将字典存储到文件

[dic2 writeToFile:@"/Users/mac/desktop/dic.plist" atomically:NO];

//4.通过读文件创建字典

NSDictionary *dic3 = [NSDictionary dictionaryWithContentsOfFile:@"/Users/mac/desktop/dic.plist"];

NSLog(@"%@",dic3);

}

return 0;

}

Objective-C:NSDectionary字典的常见操作的更多相关文章

  1. python 字典的常见操作

    字典 字典的增删改查 字典的创建方式: # 创建字典类型 info = { 'name':'李白', ', 'sex':'男' } msg = { 'user01':'Longzeluola', 'u ...

  2. 字典的常见操作<一>

    <1>修改元素 字典的每个元素中的数据是可以修改的,只要通过key找到,即可修改 Demo from pip._vendor.distlib.compat import raw_input ...

  3. 字典的常见操作<二>

    <1>len() 测量字典中,键值对的个数 <2>keys 返回一个包含字典所有KEY的列表 <3>values 返回一个包含字典所有value的列表 <4& ...

  4. python(二)——list、字典、字符串操作

    列表——list 假设一种场景,想要存班里所有同学的名字,那应该拿什么存呢? 我们可以拿一个字符串去存,例如: stus = "s1,s2,s3,s4,s5……sn" 那我们要从里 ...

  5. Redis安装和客户端cli常见操作

    安装Redis $ wget http://download.redis.io/releases/redis-4.0.6.tar.gz $ tar xzf redis-4.0.6.tar.gz $ c ...

  6. python字典及相关操作

    1.字典 1.1.字典特性 字典是一种key-value的数据类型.key必须可hash,必须为不可变数据类型,且必须是唯一的:value可以存放任意多个值.可修改.可以不唯一:字典是无序的,通过ke ...

  7. 『无为则无心』Python序列 — 21、Python字典及其常用操作

    目录 1.字典的应用场景 2.字典的概念 3.创建字典的语法 4.字典常见操作 (1)字典的增加操作 (2)字典的删除操作 (3)字典的修改 (4)字典的查找 (5)copy()复制 1.字典的应用场 ...

  8. 动态单链表的传统存储方式和10种常见操作-C语言实现

    顺序线性表的优点:方便存取(随机的),特点是物理位置和逻辑为主都是连续的(相邻).但是也有不足,比如:前面的插入和删除算法,需要移动大量元素,浪费时间,那么链式线性表 (简称链表) 就能解决这个问题. ...

  9. C#路径/文件/目录/I/O常见操作汇总

    文件操作是程序中非常基础和重要的内容,而路径.文件.目录以及I/O都是在进行文件操作时的常见主题,这里想把这些常见的问题作个总结,对于每个问题,尽量提供一些解决方案,即使没有你想要的答案,也希望能提供 ...

随机推荐

  1. oracle配置ODBC

    摘自:http://www.cnblogs.com/shelvenn/p/3799849.html 我使用的Windows 10,64位的操作系统. 1.下载驱动包 base包:instantclie ...

  2. GTK, GTK+, Qt, KDE, GNOME, Unity的区别与联系

    GTK,GTK+, Qt是图形界面开发库(GUI Toolkit),用户可以使用这些开发库编写GUI应用,其中GTK+是GTK的升级版. KDE,GNOME,Unity是linux下的桌面环境(Des ...

  3. C语言感悟

    还没接触C语言前,以为代码是一些单词组成的公式,和背单词一样的麻烦.枯燥无味,所以英语基础的很烂的我,对C语言没什么信心. 通过这一段时间的学习,现在对C语言的认识,和最开始时很大不一样.C语言中的代 ...

  4. 牛客练习赛3 F - 监视任务

    链接:https://www.nowcoder.net/acm/contest/13/F来源:牛客网 题目描述

  5. ubuntu下 mysql安装以后无法登陆的的解决方法((ERROR 1698 (28000): Access denied for user 'root'@'localhost'))

    1. 删除mysql sudo apt-get autoremove --purge mysql-server-5.0 sudo apt-get remove mysql-server sudo ap ...

  6. django项目添加新的app

  7. ?P<username>\w+

  8. Java设计模式GOF之6大设计原则

    Java设计模式GOF之6大设计原则原则 1.开闭原则(Open Close Principle) 一个软件实体如类.模块和函数应该对扩展开放,对修改关闭. 开闭原则是面向对象的可复用设计的第一块基石 ...

  9. BZOJ 3956: Count 主席树 可持久化线段树 单调栈

    https://www.lydsy.com/JudgeOnline/problem.php?id=3956 从描述可以得到性质: 每个好点对 ( 除了差值为1的好点对 ) 中间的数 ( i , j ) ...

  10. Loj #6560 小奇取石子

    题面 分类讨论一波,n小的暴力2^n,n大的背包. #include<bits/stdc++.h> #define ll long long using namespace std; co ...