字典
2016-06-02 17:35
423 查看
字典:
1,字典是一种数据结构,是以键值对的形式来存储数据
2,字典中的键值对可以是任意类型的对象,但是key一般是字符串
3,键在字典中是唯一存在的
4,字典中,键值对是没有顺序的
<1>创建方法
(1) 从Xcode4.6 以后允许用下述方式创建一个字典
NSDictionary* dic4 =
@{@"1":@"one",@"2":@"two",@"3":@"three”};
(2) //实例化方法
- (id)initWithObjectsAndKeys:(id)firstObject, …;
(3) 用一个字典来创建一个新的字典
-(id)initWithDictionary(NSDictionary*)otherDictionary;
(4)用两个数组来创建字典,一个数组中装的是所有的键 另外一个数组装的是所有的值,两个数组的长度必须相等
NSArray* valueArray =@[@"one",@"two",@"three"];
NSArray* keyArray =
@[@"1",@"2",@"3"];
NSDictionary* dict3 = [[NSDictionaryalloc]initWithObjects:valueArrayforKeys:keyArray];
(5)该创建方式携带的参数是值键排列
系统会将奇数个元素作为值,偶数个元素作为键来创建字典
NSDictionary* dict = [[NSDictionary alloc]initWithObjectsAndKeys:@"one",@"1",@"two",@"2",nil];
//类方法创建
(6) + (id)dictionaryWithObjectsAndKeys:(id)firstObject,
...;
(7) + (id)dictionaryWithDictionary:(NSDictionary*)dict;
<2>获取键值对个数
- (NSUInteger)count;
<3>根据key获取相应的值
- (id)objectForKey:(id)aKey;
<4>获取字典中所有的key
- (NSArray*)allKeys;
<5>获取值是anObject的所有的key
- (NSArray*)allKeysForObject:(id)anObject;
<6>获取字典中所有的值
- (NSArray*)allValues;
<7>如何遍历字典
枚举遍历
NSEnumerator* enu = [dic
keyEnumerator];
NSString* str;
while((str = [enu
nextObject])!=
nil) {
NSLog(@"%@",[dicobjectForKey:str]);
}
//通过字典的keyEnumerator方法返回一个枚举器,这个枚举器中装得是字典的Key,遍历这些Key ,通过key 去获取value
快速遍历
for in循环:
NSDictionary* dic =
@{@"1":@"one",@"2":@"two",@"3":@"three",@"4":@"four"};
for
(NSString
* key in
dic) {
NSLog(@"%@",[dicobjectForKey:key]);
}
二.可变字典
<1>增加键值对
[muDic
setObject:@"one"forKey:@"1"];
//如果Key 是存在的,就修改key 所对应的value 的值,如果不存在,就添加一个键值对
//增加整个字典
- (void)addEntriesFromDictionary:(NSDictionary*)otherDictionary;
<2>删除键值对
//通过key 去删除key所对应的键值对
[muDic
removeObjectForKey:@"5"];
//把所有想删除的键值对的key都放到一个数组中,通removeObjectsForKeys,删除所有数组中key
对应的键值对
NSArray* keyArray =
@[@"1",@"3"];
[muDic
removeObjectsForKeys:keyArray];
//删除所有的键值对
[muDic
removeAllObjects];
<3>修改键值对
[muDic
setValue:@"five"forKey:@"4"];
//如果Key 是存在的,就修改key 所对应的value 的值,如果不存在,就添加一个键值对
//修改整个字典
- (void)setDictionary:(NSDictionary*)otherDictionary;
1,字典是一种数据结构,是以键值对的形式来存储数据
2,字典中的键值对可以是任意类型的对象,但是key一般是字符串
3,键在字典中是唯一存在的
4,字典中,键值对是没有顺序的
<1>创建方法
(1) 从Xcode4.6 以后允许用下述方式创建一个字典
NSDictionary* dic4 =
@{@"1":@"one",@"2":@"two",@"3":@"three”};
(2) //实例化方法
- (id)initWithObjectsAndKeys:(id)firstObject, …;
(3) 用一个字典来创建一个新的字典
-(id)initWithDictionary(NSDictionary*)otherDictionary;
(4)用两个数组来创建字典,一个数组中装的是所有的键 另外一个数组装的是所有的值,两个数组的长度必须相等
NSArray* valueArray =@[@"one",@"two",@"three"];
NSArray* keyArray =
@[@"1",@"2",@"3"];
NSDictionary* dict3 = [[NSDictionaryalloc]initWithObjects:valueArrayforKeys:keyArray];
(5)该创建方式携带的参数是值键排列
系统会将奇数个元素作为值,偶数个元素作为键来创建字典
NSDictionary* dict = [[NSDictionary alloc]initWithObjectsAndKeys:@"one",@"1",@"two",@"2",nil];
//类方法创建
(6) + (id)dictionaryWithObjectsAndKeys:(id)firstObject,
...;
(7) + (id)dictionaryWithDictionary:(NSDictionary*)dict;
<2>获取键值对个数
- (NSUInteger)count;
<3>根据key获取相应的值
- (id)objectForKey:(id)aKey;
<4>获取字典中所有的key
- (NSArray*)allKeys;
<5>获取值是anObject的所有的key
- (NSArray*)allKeysForObject:(id)anObject;
<6>获取字典中所有的值
- (NSArray*)allValues;
<7>如何遍历字典
枚举遍历
NSEnumerator* enu = [dic
keyEnumerator];
NSString* str;
while((str = [enu
nextObject])!=
nil) {
NSLog(@"%@",[dicobjectForKey:str]);
}
//通过字典的keyEnumerator方法返回一个枚举器,这个枚举器中装得是字典的Key,遍历这些Key ,通过key 去获取value
快速遍历
for in循环:
NSDictionary* dic =
@{@"1":@"one",@"2":@"two",@"3":@"three",@"4":@"four"};
for
(NSString
* key in
dic) {
NSLog(@"%@",[dicobjectForKey:key]);
}
二.可变字典
<1>增加键值对
[muDic
setObject:@"one"forKey:@"1"];
//如果Key 是存在的,就修改key 所对应的value 的值,如果不存在,就添加一个键值对
//增加整个字典
- (void)addEntriesFromDictionary:(NSDictionary*)otherDictionary;
<2>删除键值对
//通过key 去删除key所对应的键值对
[muDic
removeObjectForKey:@"5"];
//把所有想删除的键值对的key都放到一个数组中,通removeObjectsForKeys,删除所有数组中key
对应的键值对
NSArray* keyArray =
@[@"1",@"3"];
[muDic
removeObjectsForKeys:keyArray];
//删除所有的键值对
[muDic
removeAllObjects];
<3>修改键值对
[muDic
setValue:@"five"forKey:@"4"];
//如果Key 是存在的,就修改key 所对应的value 的值,如果不存在,就添加一个键值对
//修改整个字典
- (void)setDictionary:(NSDictionary*)otherDictionary;
相关文章推荐
- 峰回路转,Firefox 浏览器即将重返 iOS 平台
- 峰回路转,Firefox 浏览器即将重返 iOS 平台
- 不可修补的 iOS 漏洞可能导致 iPhone 4s 到 iPhone X 永久越狱
- iOS 12.4 系统遭黑客破解,漏洞危及数百万用户
- 每日安全资讯:NSO,一家专业入侵 iPhone 的神秘公司
- [转][源代码]Comex公布JailbreakMe 3.0源代码
- C#如何实现对sql server数据库的增删改查
- SQLite 入门教程四 增删改查 有讲究
- Javascript数组与字典用法分析
- javascript实现信息增删改查的方法
- Javascript的数组与字典用法与遍历对象的属性技巧
- BootstrapTable与KnockoutJS相结合实现增删改查功能【二】
- BootStrap实现带有增删改查功能的表格(DEMO详解)
- javascript编程必备_JS语法字典第1/2页
- hibernate中的增删改查实现代码
- 讲解iOS开发中基本的定位功能实现
- iOS中定位当前位置坐标及转换为火星坐标的方法
- js判断客户端是iOS还是Android等移动终端的方法
- iOS应用开发中AFNetworking库的常用HTTP操作方法小结