iOS 工作之余小总结---(四)-(4)可变与不可变字典

来源:互联网 发布:多功能助手软件下载 编辑:程序博客网 时间:2024/06/01 09:43

补之前的总结,今天把字典的代码做下总结。
1.不可变字典NSDictionary
//1.创建
NSDictionary *fyDic1 = [NSDictionary dictionary];//空字典 没有意义
NSDictionary *fyDic2 = [NSDictionary dictionaryWithObjectsAndKeys:@”value1”,@”key1”,@”value2”,@”key2”,nil];//前值后键
NSDictionary *fyDic3 = [NSDictionary dictionaryWithDictionary:fyDic2];
NSDictionary *fyDic4 = @{@”key1”:@”value1”,@”key2”:@”value2”,@”key3”:@”value3”};

//2.求键值对儿个数
[fyDic4 count];

//3.数组转字典
//先创建来年各个数组 一个是key 一个是value
NSArray *fyArray1forKey = @[@”key4”,@”key5”,@”key6”];
NSArray *fyArray2ForValue = @[@”value4”,@”value5”,@”value6”];
NSDictionary *fyDic5 = [NSDictionary dictionaryWithObjects:fyArray2ForValue forKeys:fyArray1forKey];// 这个方法中的数组一定要个数一样 否则也会崩溃
//4. 字典转数组
NSArray *fyArrayForKeyOfDictionary = [fyDic4 allKeys];//取到了字典中的所有的key
NSArray *fyArrayForObjectOfDictionary = [fyDic4 allValues];//取到了所有的value

//5.通过关键字找值 objectForKey
//1.找单个的元素
NSString *fyKeys = @”key1”;
NSString *fyKeys1 = fyDic2[@”key1”];
NSString *fyvalue = [fyDic2 objectForKey:fyKeys];
//2.找很多元素 创建数组找
NSArray *fyFindValue = @[@”key1”,@”key6”];
NSArray *fyFinded = [fyDic2 objectsForKeys:fyFindValue notFoundMarker:@”没有找到对应的元素”];//第二个方法 如果没有找到对应的元素 在notFoundMarker 中 标记自己的话

//6.通过值找关键字 keyforvlaue
//值得注意的是 ,字典中不同key可以对应相同的vlaue (key唯一 vlaue不唯一) 所以用数组去接
NSArray *fyKey3 = [fyDic2 allKeysForObject:@”value1”];

//7.遍历 遍历的时候用什么去接 就看你自己的需求吧
NSMutableArray *array = [[NSMutableArray alloc] init];
NSMutableString *str = [[NSMutableString alloc] init];
for (NSString *a in fyDic2) {
[str appendString:fyDic2[a]];
[str appendString:a];
[str appendString:@”\n”];
}

2.可变字典NSMutableDictionary

//1.创建
NSMutableDictionary *fyMDic1 = [[NSMutableDictionary alloc] init];
NSMutableDictionary *fyMDic2 = [NSMutableDictionary
dictionaryWithCapacity:100];//预估值创建
NSMutableDictionary *fyMDic3 = [NSMutableDictionary dictionaryWithObjectsAndKeys:@”v1”,@”k1”,@”v2”,@”k2”,nil];
NSMutableDictionary *fyMDic4 = [NSMutableDictionary dictionaryWithDictionary:fyMDic3];

//2.添加
[fyMDic4 setValue:@”” forKey:@”“];//这个是添加一个元素 只能在可变的字典中使用
NSDictionary *fyDic1 = @{@”k3”:@”v3”,@”k4”:@”v4”,@”k5”:@”v5”};
[fyMDic4 addEntriesFromDictionary:fyDic1];

//3.修改
NSDictionary *fyDic2 = @{@”1”:@”one”};
NSMutableDictionary *fyMDic5 = [NSMutableDictionary dictionaryWithObjectsAndKeys:@”tie”,@”2”,nil];
[fyMDic5 setDictionary:fyDic2];

//4.删除
[fyMDic2 removeObjectForKey:@”1”];
[fyMDic2 removeAllObjects];

1 0