-
一:字典的基本概念
Foundation中的字典(NSDictionary,NSMutableDictionary)是由键-值对组成的数据集合.正如,我们在字典里查找单词的定义一样.
通过key(键),查找的对应的value(值),key通常是字符串对象,也可以是其他任意类型对象.在一个字典对象中,key的值必须是唯一的.
此外,字典对象的键和值不可以为空(nil),如果需要在字典中加入一个空值,可以加入NSNull对象
二:不可变字典-NSDictionary
1:初始化(以一个元素和多个元素进行初始化):
//以一个键值对象 进行初始化
12345NSDictionary *dict1=[NSDictionary dictionaryWithObject:numObj1 forKey:@
"key1"
];
NSLog(@
"%@"
,dict1);
//以多个元素进行初始化
NSDictionary *dict2=[NSDictionary dictionaryWithObjectsAndKeys:numObj1, @
"key1"
,numObj2,@
"key2"
, nil];
NSLog(@
"%@"
,dict2);
12
:获取字典的数量
1//获取字典的数量
NSInteger count=[dict2 count];
NSLog(@"%ld",count);
3:根据key获取相应的value对象
//根据key获取相应的value对象
12NSString *value=[dict2 objectForKey:@
"key1"
];
NSLog(@
"%@"
,value);
NSEnumerator *enumerator=[dict2 keyEnumerator];
5:获取所有的key集合//获取所有的key集合
12NSArray *keys= [dict2 allKeys];
NSLog(@
"%@"
,keys);
//获取所有的value集合
12NSArray *values=[dict2 allValues];
NSLog(@
"%@"
,values);
1:初始化字典
12//初始化字典
NSMutableDictionary *mutableDic=[[NSMutableDictionary alloc]initWithObjectsAndKeys:@
"v1"
,@
"k1"
,@
"v2"
,@
"k2"
,@
"v3"
,@
"k3"
,@
"v4"
,@
"k4"
,@
"v5"
,@
"k5"
, nil];
//向一个字典中添加一个字典
123NSDictionary *dict4=[NSDictionary dictionaryWithObject:@
"v6"
forKey:@
"k6"
];
[mutableDic addEntriesFromDictionary:dict4];
NSLog(@
"%@"
,mutableDic);
12//向字典中添加value和key
[mutableDic setValue:@
"object"
forKey:@
"key"
];
1234//创建空的字典,然后设置新的一个字典,把会之前的字典全部覆盖掉
NSMutableDictionary *mutableDict2=[NSMutableDictionary dictionary];
[mutableDict2 setDictionary:mutableDic];
NSLog(@
"%@"
,mutableDict2);
123//移除指定key的value值
[mutableDict2 removeObjectForKey:@
"k4"
];
NSLog(@
"%@"
,mutableDict2);
1234//删除一组key的value值
NSArray *arrayKeys=[NSArray arrayWithObjects:@
"k1"
,@
"k2"
,@
"k3"
, nil];
[mutableDict2 removeObjectsForKeys:arrayKeys];
NSLog(@
"%@"
,mutableDict2);
//删除字典中所有的数据
12[mutableDict2 removeAllObjects];
NSLog(@
"%@"
,mutableDict2);
1:一般遍历
//一般遍历
123456NSArray *allKeys=[mutableDic allKeys];
for
(NSInteger i=
0
; i<[allKeys count]; i++) {
NSString *obj=[mutableDic objectForKey:[allKeys objectAtIndex:i]];
NSLog(@
"%@"
,obj);
}
2:快速枚举
//快速遍历
1234for
(id key in mutableDic) {
NSString *object=[mutableDic objectForKey:key];
NSLog(@
"%@"
,object);
}
12345678//枚举器
NSEnumerator *enumerator1= [mutableDic keyEnumerator];
id key=[enumerator1 nextObject];
while
(key) {
id object=[mutableDic objectForKey:key];
NSLog(@
"%@"
,object);
key=[enumerator1 nextObject];
}