字典是一個無序的集合,也可稱之為鍵值對。與數組不同的是字典可以通過特定的key快速查找到想要的值,而不用周遊字典。是以一個唯一的key隻能對應一個值,而多個key可以對應同一個值。字典分為不可變字典(NSDictionary)和可變字典(NSMutableDictionary)。本篇文章隻介紹NSDictionary。。。
1、不可變字典的建立(注意書寫規範)
1>初始化建立字典
NSDictionary* dict1=[[NSDictionary alloc]initWithObjectsAndKeys:@"v1",@"k1",@"v2",@"k2",@"v3",@"k3", nil]; //執行個體方法
NSDictionary* dict2=[NSDictionary dictionaryWithObjectsAndKeys:@"v1",@"k1",@"v2",@"k2",@"v3",@"k3", nil]; //類方法
2>通過鍵值數組建立字典
NSDictionary* dict3=[[NSDictionary alloc]initWithObjects:@[@"v1",@"v2",@"v3"] forKeys:@[@"k1",@"k2",@"k3"]]; //執行個體方法
NSDictionary* dict4=[NSDictionary dictionaryWithObjects:@[@"v1",@"v2",@"v3"] forKeys:@[@"k1",@"k2",@"k3"]];//類方法
3>通過已有的字典建立
NSDictionary* dict5=[[NSDictionary alloc]initWithDictionary:dict1];//執行個體方法
NSDictionary* dict6=[NSDictionary dictionaryWithDictionary:dict1];//類方法
4>最簡單的方式
NSDictionary *[email protected]{@"k1":@"v1", @"k2":@"v2", @"k3":@"v3"};
2、周遊字典
NSDictionary *[email protected]{@"k1":@"v1", @"k2":@"v2", @"k3":@"v3"};
//通過key查找value
NSString* obj=[dict1 objectForKey:@"k3"];
NSLog(@"value:%@", obj);
//擷取所有的key
NSArray *keys=[dict1 allKeys];
NSLog(@"所有的鍵:%@", keys);
//擷取所有的值
NSArray *values=[dict1 allValues];
NSLog(@"所有的值:%@", values);
//快速枚舉法周遊 **枚舉的是key**
for(id obj in dict1)
{
NSLog(@"key:%@", obj); //鍵
NSLog(@"value:%@", [dict1 objectForKey:obj]); //值
}
//枚舉器法 objectEnumerator 枚舉的是值
NSEnumerator *enumerator=[dict1 objectEnumerator];
id obj;
while(obj=[enumerator nextObject])
{
NSLog(@"枚舉器法obj:%@",obj);
}
//枚舉器法 枚舉鍵
NSEnumerator *kenumerator=[dict1 keyEnumerator];
id key;
while(key=[kenumerator nextObject])
{
NSLog(@"鍵枚舉器法key:%@",key);
}
//字典的長度
NSUInteger count=dict1.count;
NSLog(@"字典一共有%lu個鍵值對",count);
列印結果