1.字典的創建
/*
字典:保存數據的一種工具
分類:不可變字典、可變字典
詳情:通過鍵(key)-值(value)的形式存儲數據
注意:
1、value可以相同,key必須唯一
2、字典保存對象類型
3、key一般為字符串
4、字典中的多個key-value是沒有順序的
*/
不可變字典
//創建空字典
NSDictionary *dic1 = [NSDictionary dictionary];
NSDictionary *dic2 = [[NSDictionary alloc] init];
//對像方法創建
NSDictionary *dic3 = [[NSDictionary alloc] initWithObjectsAndKeys:@"sunck", @"1", @"is", @"2", @"a", @"3", @"good", @"4", @"man", @"5", nil];
NSLog(@"dic3 = %@", dic3);
//注意:前后兩個數組(數據,鍵值)一一對應的
NSDictionary *dic4 = [[NSDictionary alloc] initWithObjects:@[@"sunck", @"is", @"a", @"good", @"man"] forKeys:@[@"1", @"2", @"3", @"4", @"5"]];
//通過已存在的字典創建新的字典
NSDictionary *dic5 = [[NSDictionary alloc] initWithDictionary:dic4];
//類方法:
NSDictionary *dic6 = [NSDictionary dictionaryWithObjectsAndKeys:@"sunck", @"1", @"is", @"2", @"a", @"3", @"good", @"4", @"man", @"5", nil];
NSDictionary *dic7 = [NSDictionary dictionaryWithObjects:@[@"sunck", @"is", @"a", @"good", @"man"] forKeys:@[@"1", @"2", @"3", @"4", @"5"]];
NSDictionary *dic8 = [NSDictionary dictionaryWithDictionary:dic4];
//注意:鍵值之間用:鏈接,多個鍵值對用,分隔,最后省略了nil
NSDictionary *dic9 = @{@"1": @"sunck", @"2": @"is", @"3": @"a", @"4": @"good", @"5": @"man"};
不可變字典的其他方法
//取值
NSDictionary *dic1 = @{@"1": @"sunck", @"2": @"is", @"3": @"a", @"4": @"good", @"5": @"man", @"6": @"Oh", @"7": @"he", @"8": @"is", @"9": @"good"};
NSLog(@"dic1 = %@", dic1);
//取一個值
NSString *str = [dic1 objectForKey:@"3"];
NSString *str2 = dic1[4];
//取多個值
NSArray * arr1 = [dic1 objectsForKeys:@[@"1",@"2",@"3"] notFoundMarker:@"NotFound"];
//取s所有的值
NSArray *value = [dic1 allValues];
//取所有的key
NSArray *key = [dic1 allKeys];
//取出所有value對應的key
NSArray *key3 = [dic1 allKeysForObject:@"sdd"];
//遍歷字典
//針對字典來說,in的前面是字典中的key
//in的后面是要遍歷的集合(數組、字典)
for (NSString *key in dic1) {
NSString *value = [dic1 objectForKey:key];
}
//枚舉遍歷
NSEnumerator *emumer = [dic1 keyEnumerator];
id keyString = nil;
while (keyString = [emumer nextObject]) {
NSString *value = [dic1 objectForKey:keyString ];
}
2.可變字典的增刪改查
//增
NSMutableDictionary *mutDic = [[NSMutableDictionary alloc]initWithObjects:@[@"sun", @"is", @"a", @"good", @"man"] forKeys:@[@"1", @"2", @"3", @"4", @"5"]];
//增加一個鍵值對
[mutDic setObject:@"sdf" forKey:@"7"];
//增加多個鍵值對,
//注意:如果增加時,鍵值對鍵一樣,原數據會被修改為當前數據
[mutDic addEntriesFromDictionary:@{@"6":@"sdf",@"3":@"sdf"}];
//刪
[mutDic removeObjectForKey:@"6"];
//刪除多個
[mutDic removeObjectsForKeys:@"6",@"5"];
//刪除所有的
[mutDic removeAllObjects];
//改
NSMutableDictionary *mutDic3 = [[NSMutableDictionary alloc] initWithObjects:@[@"sunck", @"is", @"a", @"good", @"man", @"!"] forKeys:@[@"1", @"2", @"3", @"4", @"5", @"6"]];
[mutDic3 setObject:@"nice" forKey:@"4"];
NSLog(@"mutDic3-1 = %@", mutDic3);
[mutDic3 setValue:@"handsome" forKey:@"4"];
NSLog(@"mutDic3-2 = %@", mutDic3);
//將字典替換為后面的字典
[mutDic3 setDictionary:mutDic1];