OC06 -- 字典
一. 创建不可变字典的方式:
//字典的字面量,前key后value
NSDictionary *dic =@{@"1":@"2",@"3":@"4"};
NSDictionary *dic = [[NSDictionaryalloc]init];
NSDictionary *dic = [NSDictionary dictionary];
NSDictionary *dic = [[NSDictionary alloc]initWithObjectsAndKeys:@"1",@"2",@"3",@"4",@"5",@"6",@"7",@"8",nil];
NSLog(@"%@",dic);
// Key 是唯一的,可是Value是能够反复的
// key 不能为空.
二. 不可变字典的属性与方法:
//1.属性:有多少键值对 -- count:
NSLog(@"%ld",dic.count);
// 2. objectForKey --
依据Key找value:
NSLog(@"%@",[dic objectForKey:@"2"]);
NSLog(@"%@",dic[@"2"]);
//3. 获取全部的key和value --
NSLog(@"%@",dic.allKeys);
NSLog(@"%@",dic.allValues);
三. 创建可变字典的方式:
NSMutableDictionary *dic = [NSMutableDictionarydictionaryWithObjectsAndKeys:@"1",@"2",@"3",@"4",@"5",@"6",nil];
//
遍历字典.
打出全部Vaule
for (NSInteger i =
; i < dic.allKeys.count; i++) {
NSLog(@"%@",dic.allValues[i]);
}
for (NSString *str
in dic) {
NSLog(@"%@",str);//
打出字典的Key.
NSLog(@"%@",dic[str]);//打出Vaule.
}
四.可变字典的属性与方法:
NSMutableDictionary *dic1 = [[NSMutableDictionaryalloc]initWithObjectsAndKeys:@"1",@"2",@"3",@"4",@"5",@"6",@"7",@"8",nil];
//1.可变键值对加入(当key不存在时就进行加入,当key存在时,就进行vaule值的改动.)
-- setObject forKey:
[dic1setObject:@"10"forKey:@"11"];
NSLog(@"%@\n",dic1);
[dic1setObject:@"1000"forKey:@"11"];
NSLog(@"%@",dic1);
//2. 移除键值对
[dic1 removeObjectForKey:@"8"];
NSLog(@"%@",dic1);
//3. 所有移除
[dic1 removeAllObjects];
NSLog(@"%@",dic1);
//4. setObject
是字典自己方法,setVaule是KVC的方法,即使效果一样,但以后对字典进行操作还用setObject.
[dic1setValue:@"100"forKey:@"10"];
五.字典与数组的嵌套:
//1. 字典里对象是数组.
NSArray *arr1 =
@[@"1",@"2",@"3",@"4"];
NSArray *arr2 =
@[@"5",@"6",@"7",@"8"];
NSMutableDictionary *dic = [NSMutableDictionarydictionaryWithObjectsAndKeys:arr1,@"arr1",arr2,@"arr2",nil];
//
遍历.
for (NSString *keyin dic) {
//
针对相应的key 找到vaule,vaule是一个数组,所以用一个数组对象来接受.
NSLog(@"%@",key);
NSArray *arr = dic[key];
for (NSString *vaulein arr) {
NSLog(@"%@",vaule);
}
}
//2. 数组里对象是字典.
NSDictionary *dic1 = [NSDictionarydictionaryWithObjectsAndKeys:@"杨林",@"name",@"19",@"age",nil];
NSDictionary *dic2 = [NSDictionarydictionaryWithObjectsAndKeys:@"刘鑫狗",@"name",@"20",@"age",nil];
NSDictionary *dic3 = [NSDictionarydictionaryWithObjectsAndKeys:@"刘伊茹",@"name",@"0",@"age",nil];
NSArray *arr =
@[dic1,dic2,dic3];
for (NSDictionary *dicin arr) {
for (NSString *keyin dic) {
NSLog(@"%@",dic[key]);
}
}
NSDictionary *dic1 = [NSDictionarydictionaryWithObjectsAndKeys:@"杨林",@"name",@"19",@"age",nil];
NSDictionary *dic2 = [NSDictionarydictionaryWithObjectsAndKeys:@"刘鑫狗",@"name",@"20",@"age",nil];
NSDictionary *dic3 = [NSDictionarydictionaryWithObjectsAndKeys:@"刘伊茹",@"name",@"0",@"age",nil];
NSArray *arr1 =
@[dic1,dic2];
NSArray *arr2 =
@[dic3];
NSDictionary *Bdic = [NSDictionarydictionaryWithObjectsAndKeys:arr1,@"arr1",arr2,@"arr2",nil];
for (NSString *keyBin Bdic) {
NSArray *arr =Bdic[keyB];
for (NSDictionary *sdicin arr) {
for (NSString *keyin sdic) {
NSLog(@"%@",sdic[key]);
}
}
}
OC06 -- 字典的更多相关文章
- 【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( ...
随机推荐
- OpenERP实施记录(10):采购补货
本文是<OpenERP实施记录>系列文章的一部分. 上文中业务部门接到沃尔玛三台联想Y400N笔记本电脑的订单,但是仓库无货.本文需要完成采购补货处理. 1. 联想YN400N是ABC公司 ...
- OpenERP实施记录(11):入库处理
本文是<OpenERP实施记录>系列文章的一部分. 在前面的文章中,业务部门接到沃尔玛3台联想Y400N笔记本电脑的订单,采购部门完成了补货处理.因为该产品的“最少库存规则”里面定义了“最 ...
- Java自定义Exception
国内私募机构九鼎控股打造APP,来就送 20元现金领取地址:http://jdb.jiudingcapital.com/phone.html内部邀请码:C8E245J (不写邀请码,没有现金送)国内私 ...
- Python for 循环语句
Python for 循环语句 Python for循环可以遍历任何序列的项目,如一个列表或者一个字符串. 语法: for循环的语法格式如下: for iterating_var in sequenc ...
- [gevent源代码分析] 深度分析gevent执行流程
一直对gevent执行流程比較模糊,近期看源代码略有所得.不敢独享.故分享之. gevent是一个高性能网络库,底层是libevent,1.0版本号之后是libev.核心是greenlet.geven ...
- Log4j使用指南
1 概述 本文档是针对Log4j日志工具的使用指南.包括:日志介绍.日志工具介绍.Log4j基本使用.Log4j的高级使用.Spring与log4j的集成等.并进行了举例说明. 本文档 ...
- 数值格式化 NumberFormat DecimalFormat RoundingMode
NumberFormat [简介] java.text.NumberFormat extends java.text.Format extends java.lang.Object 实现的接口:Ser ...
- Android面试,View绘制流程以及invalidate()等相关方法分析
整个View树的绘图流程是在ViewRoot.java类的performTraversals()函数展开的,该函数做的执行过程可简单概况为 根据之前设置的状态,判断是否需要重新计算视图大小(measu ...
- hdu 1158-Employment Planning,n*n*n
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1158 解题思路就不多说,动态规划. 值得提及的是题目没有给出数据范围,水过的都默认工人数目不超过100 ...
- oracle 11g physical standby switchover
简介 SWITCHOVERS主要是在计划停机维护时用来降低DOWNTIME,如硬件维护.操作系统升级或是数据库rolling upgrade, 也可用来进行特殊情况下的数据库迁移. SWITCHOVE ...