字典
分类:不可变和可变字典
元素类型:id(即:任意的对象指针)
特点:字典是无序的
内容:键值对:key -->value;键值对必须成对出现,key一般是NSString*类型,方便操作
------------------------------------------------------------------------------------
1)创建一个不可变字典:
方法一:
NSDictionary * dict = [[NSDictionaryalloc]initWithObjectsAndKeys:@"one",@"1",@"tow",@"2",@"three",@"3",@"four",@"4",@"five",@"5",@"ten",@"10",nil];
方法二:
NSDictionary * dict2 = [NSDictionarydictionaryWithDictionary:dict];
方法三:
NSArray * keys = [[NSArrayalloc]initWithObjects:@"1",@"2",@"3",nil];
NSArray * values = [[NSArrayalloc]initWithObjects:@"one",@"two",@"three",nil];
NSDictionary * dict3 = [[NSDictionaryalloc]initWithObjects:values forKeys:keys];
------------------------------------------------------------------------------------------------------------------------
2)遍历字典:
说明:a.字典的查找效率要比数组快
b.哈希
方法一:
//创建一个key的枚举器
NSEnumerator * enumer1 = [dict3keyEnumerator];
id key;
//遍历字典
while (key = [enumer1nextObject])
{
NSLog(@"value = %@",[dict3 objectForKey:key]);
}
方法二:
//快速枚举,枚举的是key
for (id keyin dict3)
{
NSLog(@"key = %@ , value = %@",key,[dict3objectForKey:key]);
}
------------------------------------------------------------------------------------
3)获取键值对个数
例子:
NSLog(@"count = %ld",[dict3count]);//键值对的个数
------------------------------------------------------------------------------------
4)字典的最主要功能:根据key找到对应值
例子:
NSLog(@"%@",[dict3objectForKey:@"three"]);
------------------------------------------------------------------------------------
5)创建可变字典:
例子:
NSMutableDictionary * dict = [[NSMutableDictionaryalloc]initWithObjectsAndKeys:@"1",@"one",@"2",@"two",@"3",@"three",nil];
------------------------------------------------------------------------------------
6)对可变字典的操作:
----------增------------
[dictsetObject:@"4"forKey:@"four"];//增加键值对
----------删------------
[dictremoveObjectForKey:@"one"];//删除键值对
[dictremoveAllObjects];//删除所有的键值对
----------改------------
[dictsetObject:@"yi"forKey:@"one"];//如果字典中这个key存在那么setObject: forKey:代表的是修改、、如果key不存在那么代表的增加