字典概述
1.字典是一個無序的集合盖淡,用來存儲具有一一對應(yīng)關(guān)系的數(shù)據(jù)。
2.字典中存儲的每一個對象都是一對鍵值對凿歼,鍵值對包含兩個部分key和value褪迟,key與value的值都是對象類型冗恨。
3.對于每一對key-value稱為一個條目(Entry)。
字典的特點
1,與數(shù)組不同味赃,字典靠key存取元素掀抹。
2,key與value必須都是對象類型。
3,字典中鍵值對的存儲是無序的心俗。
4,字典分為兩種類型不可變字典(NSDictionary)傲武,可變字典(NSMutableDictionary)。
NSDictionary的創(chuàng)建
//初始化字典
NSDictionary *num = [[NSDictionary alloc] initWithObjectsAndKeys:@"one", @"num1", @"two", @"num2", @"three", @"num3", nil];
//注:先寫value另凌,再寫key谱轨,一對key-value是一個元素,nil作為字典存放元素的結(jié)束標志吠谢。
//便利構(gòu)造器
NSDictionary *num1 = [NSDictionary dictionaryWithObjectsAndKeys:@"one",@"num1",@"two",@"num2",nil];
//字面量
//使用“ @{} ”土童,“ {} ”中存入字典元素,key:value一一對應(yīng)工坊,元素之間使用”献汗,”相隔。
NSDictionary *num2 = @{@"num1":@"one",@"num2":@"two"};
NSLog(@"%@,%@,%@",num,num1,num2);
NSDictionary的常用操作
//獲取字典中鍵值對的個數(shù)
NSInteger count = [num count];
//獲取字典中所有的鍵
NSArray *arr = [num allKeys];
//獲取字典中所有的值
NSArray *arr1 = [num allValues];
//根據(jù)鍵獲得對應(yīng)的值
NSString *string = [num objectForKey:@"num1"];
NSLog(@"%@",string);
NSMutableDictionary概述
NSMutableDictionary(可變字典)的父類是NSDictionary王污,NSMutableDictionary具有NSDictionary所有的方法罢吃,同時在其基礎(chǔ)上添加了 “增加”,“修改”昭齐,“刪除”的操作尿招。
NSMutableDictionary創(chuàng)建常用方法
//初始化方法
NSMutableDictionary *name = [[NSMutableDictionary alloc] initWithCapacity:0];
//便利構(gòu)造器
NSMutableDictionary *name1 = [NSMutableDictionary dictionaryWithCapacity:0];
//字面值
NSMutableDictionary *name2 = [@{@"key1":@"frank", @"key2":@"duck"} mutableCopy];
//常用寫法
NSMutableDictionary *name0 = [NSMutableDictionary dictionaryWithObjectsAndKeys:@"one",@"num1",@"two",@"num2", nil];
NSMutableDictionary常用操作
//字典中添加新的鍵值對
[name2 setObject:@"dog" forKey:@"key3"];
[name2 setObject:@33 forKey:@"age"];
//修改已有鍵對應(yīng)的值,如果鍵不存在,則為添加鍵值對阱驾,如果鍵存在就谜,則為修改已有鍵對應(yīng)的值
[name2 setObject:@43 forKey:@"age"];
NSLog(@"%@",name2);
//移除指定的鍵對應(yīng)的鍵值對
[name2 removeObjectForKey:@"age"];
NSLog(@"%@",name2);
//移除字典中所有的鍵值對
[name2 removeAllObjects];
NSLog(@"%@",name2);