Objective-C:NSDectionary字典的常见操作
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字典的常见操作的更多相关文章
- python 字典的常见操作
字典 字典的增删改查 字典的创建方式: # 创建字典类型 info = { 'name':'李白', ', 'sex':'男' } msg = { 'user01':'Longzeluola', 'u ...
- 字典的常见操作<一>
<1>修改元素 字典的每个元素中的数据是可以修改的,只要通过key找到,即可修改 Demo from pip._vendor.distlib.compat import raw_input ...
- 字典的常见操作<二>
<1>len() 测量字典中,键值对的个数 <2>keys 返回一个包含字典所有KEY的列表 <3>values 返回一个包含字典所有value的列表 <4& ...
- python(二)——list、字典、字符串操作
列表——list 假设一种场景,想要存班里所有同学的名字,那应该拿什么存呢? 我们可以拿一个字符串去存,例如: stus = "s1,s2,s3,s4,s5……sn" 那我们要从里 ...
- Redis安装和客户端cli常见操作
安装Redis $ wget http://download.redis.io/releases/redis-4.0.6.tar.gz $ tar xzf redis-4.0.6.tar.gz $ c ...
- python字典及相关操作
1.字典 1.1.字典特性 字典是一种key-value的数据类型.key必须可hash,必须为不可变数据类型,且必须是唯一的:value可以存放任意多个值.可修改.可以不唯一:字典是无序的,通过ke ...
- 『无为则无心』Python序列 — 21、Python字典及其常用操作
目录 1.字典的应用场景 2.字典的概念 3.创建字典的语法 4.字典常见操作 (1)字典的增加操作 (2)字典的删除操作 (3)字典的修改 (4)字典的查找 (5)copy()复制 1.字典的应用场 ...
- 动态单链表的传统存储方式和10种常见操作-C语言实现
顺序线性表的优点:方便存取(随机的),特点是物理位置和逻辑为主都是连续的(相邻).但是也有不足,比如:前面的插入和删除算法,需要移动大量元素,浪费时间,那么链式线性表 (简称链表) 就能解决这个问题. ...
- C#路径/文件/目录/I/O常见操作汇总
文件操作是程序中非常基础和重要的内容,而路径.文件.目录以及I/O都是在进行文件操作时的常见主题,这里想把这些常见的问题作个总结,对于每个问题,尽量提供一些解决方案,即使没有你想要的答案,也希望能提供 ...
随机推荐
- MVC设计模式一
一:基础知识 1.mvc model view control 2.模型 是应用程序的主体部分,模型表示业务数据与业务逻辑. 一个模型可以为多个视图提供数据 提高了代码的可重用性 3.视图 用户看到的 ...
- 2017-2018-1 20179202《Linux内核原理与分析》第九周作业
进程的切换和系统的一般执行过程 1.知识总结 (1)进程调度的时机: 中断处理过程直接调用schedule(),或者返回用户态时根据need_resched标记调用schedule(). 内核线程是一 ...
- ES6-const注意
注意要点 const 如何做到变量在声明初始化之后不允许改变的?其实 const 其实保证的不是变量的值不变,而是保证变量指向的内存地址所保存的数据不允许改动.此时,你可能已经想到,简单类型和复合类型 ...
- OSI、TCP、IP、UDP 这些都是啥??
一个大大的问号首先抛出,计算机之间是如何进行通信的? 计算机网络是通过传输介质.通信设施和网络通信协议,把分散在不同地点的计算机设备互连起来,实现资源共享和数据传输的系统. 网络协议就是数据按照一定的 ...
- Android 使用ViewPager 做的半吊子的图片轮播
Android 使用ViewPager 做的半吊子的图片轮播 效果图 虽然不咋样,但是最起码的功能是实现了,下面我们来一步步的实现它. 界面 下面我们来分析一下界面的构成 整体的布局: 因为我们要做出 ...
- python中的urlencode和urldecode
python将字符串转化成urlencode ,或者将url编码字符串decode的方法: 方法1: urlencode:urllib中的quote方法 >>> from urlli ...
- luogu NOIp热身赛(2018-11-07)题解
为什么前面的人都跑得那么快啊? QAQ T1:区间方差 题目大意:询问区间方差,支持单点修改 首先把方差的式子展开,得到 $$d = \frac{a_1 + ... a_n}{n} - \frac{a ...
- [BZOJ4700]适者(CDQ分治+DP/李超线段树)
如果没有秒杀,就是经典的国王游戏问题,按t/a从小到大排序即可. 考虑删除两个数i<j能给答案减少的贡献:S[i]*T[i]+P[i-1]*A[i]-A[i]+S[j]*T[j]+P[j-1]* ...
- BZOJ 1449: [JSOI2009]球队收益 最小费用最大流 网络流
https://www.lydsy.com/JudgeOnline/problem.php?id=1449 给每条路加上一个权值,每条路的费用是这条路的流量*权值,求最大流的最小费用. 每次spfa记 ...
- 20162318 2018-2019-2《网络对抗技术》Exp0 Kali安装 Week1
1.配置虚拟机 参考博客链接 2.安装kali与配置网络 参考博客链接 3.配置共享文件夹 参考博客链接 4.更换软件源 参考博客链接