OC3_字典
//
// main.m
// OC3_字典
//
// Created by zhangxueming on 15/6/12.
// Copyright (c) 2015年 zhangxueming. All rights reserved.
// #import <Foundation/Foundation.h>
//NSDictionary
//创建一个不可变字典对象
//NSMutableDictionary
//创建一个可变字典对象 //字典中对象都是键值对
//key:value
//字典中的键值对没有顺序
//字典中的key是唯一的, 但是value不一定是唯一的 int main(int argc, const char * argv[]) {
@autoreleasepool {
//用value 及 key 构造字典对象
NSDictionary *dict = [[NSDictionary alloc] initWithObjectsAndKeys:@"",@"one",@"",@"two",@"",@"three",@"",@"four",@"",@"five",@"",@"six", nil];
NSLog(@"dict = %@", dict);
//创建常量字典对象
NSDictionary *dict2 = @{@"one":@"",@"two":@""};
NSLog(@"dict2 = %@", dict2); //用传入的字典对象创建字典对象
NSDictionary *dict3 = [[NSDictionary alloc] initWithDictionary:dict];
NSLog(@"dict3 = %@", dict3); //用传入的value数组及key数组创建字典对象
NSDictionary *dict4 = [[NSDictionary alloc] initWithObjects:@[@"",@"",@"",@""] forKeys:@[@"three",@"four",@"five",@"six"]];
NSLog(@"dict4 = %@", dict4); //创建一个空的字典对象
NSDictionary *dict5 = [[NSDictionary alloc] init];
NSLog(@"dict5 = %@", dict5); //类方法创建字典对象
//跟initWithObjectsAndKeys:方法对应
NSDictionary *dict6 = [NSDictionary dictionaryWithObjectsAndKeys:@"",@"one",@"",@"two",@"",@"three", nil];
NSLog(@"dict6 = %@", dict6);
//跟initWithObjects:forKeys:相对应
NSDictionary *dict7 = [NSDictionary dictionaryWithObjects:@[@"",@"",@"",@""] forKeys:@[@"three",@"four",@"five",@"six"]];
NSLog(@"dict7 = %@", dict7); //跟initWithDictionary:相对应
NSDictionary *dict8 = [NSDictionary dictionaryWithDictionary:dict7];
NSLog(@"dict8 = %@", dict8); //计算字典中键值对的个数
NSUInteger len = [dict count];
NSLog(@"len = %li", len); //获取key对应的值
id value = [dict objectForKey:@"two"];
NSLog(@"value = %@", value); //获取所有的key
NSArray *keys = [dict allKeys];
NSLog(@"keys = %@", keys); //获取值对应所有的key
NSArray *keys2 = [dict allKeysForObject:@""];
NSLog(@"keys2 = %@", keys2); //获取所有的值
NSArray *values = [dict allValues];
NSLog(@"values = %@", values); //判断两个字典是否相等
BOOL ret = [dict isEqualToDictionary:dict2];
NSLog(@"ret = %i", ret); //遍历字典 -- 实际上是遍历字典的key //枚举器法
NSEnumerator *keysArray = [dict keyEnumerator];
for (id item in keysArray) {
NSLog(@"%@:%@",item,[dict objectForKey:item]);
}
//快速枚举法
for (id key in dict) {
NSLog(@"%@:%@", key, [dict objectForKey:key]);
}
//只遍历字典中的值
NSEnumerator *valuesArray = [dict objectEnumerator];
for (id item in valuesArray) {
NSLog(@"vlaue = %@", item);
} //可变字典操作
//构造指定容量大小的字典对象
//+ (instancetype)dictionaryWithCapacity:(NSUInteger)numItems;
NSMutableDictionary *mulDict = [[NSMutableDictionary alloc] initWithCapacity:];
NSLog(@"mulDict = %@",mulDict); //删除指定的key对应的键值对
NSMutableDictionary *mulDict2 = [NSMutableDictionary dictionaryWithDictionary:@{@"one":@"",@"two":@"",@"three":@"",@"four":@""}];
[mulDict2 removeObjectForKey:@"two"];
NSLog(@"mulDict2 = %@", mulDict2);
//添加(或者修改)键值对
[mulDict2 setObject:@"" forKey:@"three"];
NSLog(@"mulDict2 = %@", mulDict2); //将传入字典中的键值对添加到字典中 相同的修改,不同的就添加
[mulDict2 addEntriesFromDictionary:dict3];
NSLog(@"mulDict2 = %@", mulDict2); //删除所有的键值对
[mulDict2 removeAllObjects];
NSLog(@"mulDict2 = %@", mulDict2); //删除key数组对应所有键值对
NSMutableDictionary *mulDict3 = [[NSMutableDictionary alloc] initWithObjectsAndKeys:@"",@"five",@"",@"six",@"",@"seven",@"",@"eight", nil];
[mulDict3 removeObjectsForKeys:@[@"five",@"eight",@"nine"]];
NSLog(@"mulDict3 = %@", mulDict3);
//重置字典对象
[mulDict3 setDictionary:@{@"hello":@"",@"world":@""}];
NSLog(@"mulDict3 = %@", mulDict3); }
return ;
}
OC3_字典的更多相关文章
- 【DG】Oracle_Data_Guard官方直译
[DG]Oracle Data Guard官方直译 1 Oracle Data Guard 介绍 Oracle Data Guard概念和管理10g版本2 Oracle Data Guard ...
- DVWA实验之Brute Force(暴力破解)- Low
DVWA实验之Brute Force-暴力破解- Low 这里开始DVWA的相关实验~ 有关DVWA环境搭建的教程请参考: https://www.cnblogs.com/0yst3r-2 ...
- Oracle错误览表
Oracle 错误总结及问题解决 ORA 本文转自:https://www.cnblogs.com/zhangwei595806165/p/4972016.html 作者@承影剑 ORA-0 ...
- Javacript实现字典结构
字典是一种用[键,值]形式存储元素的数据结构.也称作映射,ECMAScript6中,原生用Map实现了字典结构. 下面代码是尝试用JS的Object对象来模拟实现一个字典结构. <script& ...
- python 数据类型 ----字典
字典由一对key:value 组成的 python中常用且重量级的数据类型 1. key , keys, values 字典由一对key:value 组成的 python中常用且重量级的数据类型 1. ...
- 增强版字典DictionaryEx
代码 public class DictionaryEx<TKey, TValue> : IDictionary<TKey, TValue> { /// <summary ...
- python学习笔记(字符串操作、字典操作、三级菜单实例)
字符串操作 name = "alex" print(name.capitalize()) #首字母大写 name = "my name is alex" pri ...
- python之最强王者(8)——字典(dictionary)
1.Python 字典(Dictionary) 字典是另一种可变容器模型,且可存储任意类型对象. 字典的每个键值(key=>value)对用冒号(:)分割,每个对之间用逗号(,)分割,整个字典包 ...
- python序列,字典备忘
初识python备忘: 序列:列表,字符串,元组len(d),d[id],del d[id],data in d函数:cmp(x,y),len(seq),list(seq)根据字符串创建列表,max( ...
随机推荐
- 【每天一个Linux命令】10. 用户账号的新建/修改/删除以及密码修改 useradd/usemod/userdel/passwd
在 Linux 系统中,与用户管理有关的文件主要有如下几个:分别是/etc/passwd,/etc/shadow,/etc/gfoup,/etc/gshadow .它们分别与用户的账号,密码,用户组及 ...
- HDU 4628
这是一个大水题啊... 因为比赛时不会算复杂度耽误半天. i从0到2^n枚举集合i的所有分割两半的情况的复杂度为O(3^n),可以想象这个过程相当于是给每个位标记0,1,2(0表示不选,1,2表示两个 ...
- Python Django manage.py提供的命令及用法
λpython manage.pyType'manage.py help <subcommand>'for help on a specific subcommand. Available ...
- Windows常用命令使用总结
Windows dos常用命令的熟练使用有助于提高工作效率. 1.windows+R:打开运行程序窗口 2.cmd:调用DOS命令窗口 3.mstsc:调用远程桌面命令窗口 4.mspaint:调用画 ...
- mysql之字符集与校对集
一.字符集 1.mysql的字符集设置非常灵活 可以设置服务器默认字符集: 数据库默认字符集: 表默认字符集: 列字符集: 如果某一级别没有指定字符集,则继承上一级. 查看所有字符集语句:show c ...
- ZZTHX-注意点
遇到刷卡器加密错误和后台解密不了的问题确实不太好解决,也有加密后的数据返回,可是后台总是解密不了.在这里我首先要感谢一下我的同事,在他们的帮助下,项目顺利完成了.有以下注意点现汇总如下: 1.密码加密 ...
- 关于Hadoop结合RDBMS应用的一些思考
最近一段时间一直在从事和hadoop相关的工作,主要是技术内容学习.安装配置优化以及一些框架结构的设计.在此期间,我对于RDBMS和Hadoop的结合应用有了一些自己的看法,写出来大家共同探讨一下. ...
- Nginx+Tomcat集群部署
为了获取更好的性能,我们常常需要将tomcat进行集群部署.下文通过nginx转发实现tomcat集群,并通过nginx-upstream-jvm-route插件保证session的粘滞. 应用场景环 ...
- poj 1904 King's Quest tarjan求二分图的所有可选最大匹配边
因为是完美匹配,所以每个点都已经匹配了,那么如果要选择一条别的边,增光路的最后必定找到原来所匹配的点,加上匹配的边,那么就是一个环.所以可选边在一个强连通分量里. #include <iostr ...
- ios开发——实用技术篇Swift&Swift调用C、C++、Object
Swift调用C.C++.Object 1.Swift调用C语言a,首先在项目中添加 CFile 文件命名为CHello,同时产生桥梁文件. b,创建之后的项目结构 b,在CHello.h文件中编写接 ...