OC中的不可变字典
来源:互联网 发布:网络小贷牌照名单 编辑:程序博客网 时间:2024/04/28 03:27
字典 NSDictionary
1.字典是关键字‘key’及定义的值‘value’所构成的集合,既它是由key-value组成的键值对的集合。通常来讲,‘key‘一般是’NSString‘类型的,’value‘是’OC’中的任意对象。对于字典来说,我们就是通过‘key’来访问
2.为什么在有了数组以后还需要字典呢?因为在由大量的数据或者频繁查找信息,使用字典效率更高,因为字典是采用键查询的优化存储方法的。
3.在我们OC中我们使用NSDictionary和 NSMutableDictionary l来表示字典。其中NSMutableDictionary是NSDictionary的子类
初始化
1.创建一个空的字典
NSDictionary *dictionary1 = [[NSDictionaryalloc]init];
NSDictionary *dictionary2 = [NSDictionarydictionary];
2.创建一个键值对的字典
NSDictionary *dictionary3 = [NSDictionarydictionaryWithObject:@"Rick"forKey:@"name"];
3.创建多个键值对的字典
NSDictionary *dictionary4 = [NSDictionarydictionaryWithObjectsAndKeys:@"Rick",@"name",@25,@"age",@"GZ",@"address",nil];
注意:字典里面存放的元素都要是对象类型才行,如果是基本数据类型,要先把基本数据类型进行封装,然后再放到集合里面,value在前,key在后,value和 key要成双出现
NSLog(@"dictionary4 = %@",dictionary4);//注意:在字典中键值是无序的
4.根据一个字典创建一个字典
NSDictionary *dictionary5 = [NSDictionarydictionaryWithDictionary:dictionary4];
NSLog(@"dictionary5 = %@",dictionary5);
5.新语法创建字典
NSDictionary *dictionary6 = @{};
6.新语法创建一个键值对
NSDictionary *dictionary7 =@{@"name":@"Rick"};
7.新语法创建多个键值对
NSDictionary *dictionary8 =@{@"name":@"Rick",@"age":@"25",@"address":@"GZ"};
NSLog(@"dictionary8 = %@",dictionary8);
8.从本地读取字典
NSDictionary *dictionary9 = [NSDictionarydictionaryWithContentsOfFile:@""];
9.从网络读取字典
NSDictionary *dicctionary10 = [NSDictionarydictionaryWithContentsOfURL:[NSURLURLWithString:@""]];
10.字典中键值对的数量
NSUInteger count = dictionary4.count;
NSLog(@"%lu",count);
如何访问字典
1.通过key访问字典中对应的值
NSString *name = [dictionary4 objectForKey:@"name"];
NSLog(@"name = %@",name);
2.新语法
NSString *newName = dictionary4[@"name"];
3.遍历字典中所有的值
(1).表示字典中所有的key
NSArray *keysArray = dictionary4.allKeys;
NSLog(@"%@",keysArray);
(2).字典中所有的value
NSArray *valueArray = dictionary4.allValues;
NSLog(@"%@",valueArray);
4.使用for循环来打印
for (int i =0; i<count; i++) {
NSLog(@"%@ = %@",keysArray[i],valueArray[i]);
//NSLog(@"%@ = %@",keysArray[i],[dictionary4 objectForKey:keysArray[i]]);
//NSLog(@"%@ = %@",keysArray[i],dictionary4[keysArray[i]]);
}
5.使用快速枚举
for (NSString *keyin keysArray) {
//NSLog(@"%@ = %@",key,[dictionary4 objectForKey:key]);
NSLog(@"%@ = %@",key,dictionary4[key]);
}
6.使用枚举器遍历
NSEnumerator *enumerator = [keysArray objectEnumerator];
NSString *key;
while (key=[enumerator nextObject]) {
NSLog(@"%@ = %@",key,dictionary4[key]);
}
注意:在不可变字典中不能存储相同的key,如果相同的key,则只会打印一个key对应的value
NSDictionary *dictionary = [NSDictionarydictionaryWithObjectsAndKeys:@"Rick",@"name",@25,@"age",@"GZ",@"address",@"Jack",@"name",nil];
NSLog(@"=---------------------------");
for (NSString *keyin keysArray) {
NSLog(@"%@ = %@",key,dictionary[key]);
}
- OC中的不可变字典
- OC中的不可变数组
- OC中可变字典和不可变字典
- OC的不可变字典以及可变字典
- OC基础使用(八 NSDictionary 不可变字典)
- OC语言 集合>>字典=>可变字典与不可变字典
- OC中不可变字典与可变字典的创建过程
- OC 重点之NSArray(数组) NSDictionary不可变字典类与NSMutableDictionary 可变字典类 (概括)
- OC视频笔记(不可变字典常用方法,与优化方法)(可变字典的常用方法)
- 不可变字典NSDictionary 和可可变字典NSMutableDictionary
- 字典 不可变字典NSDictionary 可变字典NSMutableDictionary
- Object-c之不可变字典
- Objective-C入门09:不可变字典
- Objective-c语言_不可变字典
- Objective-C语言_不可变字典
- OC不可变数组排序方法
- OC中不可变数组的遍历
- OC不可变数组NSArray详解
- css控制文字显示长度
- Centos 6.7 安装RStudio server遇到的问题总结
- jdk和jre的区别和联系--详细
- myeclipse 修改 背景颜色
- HTTPS(SSL加密)webservice客户端访问总结
- OC中的不可变字典
- Spring MVC 框架搭建及详解
- Android-图片存入系统相册更新显示
- LayoutInflater和findViewById的区别
- Android app做成 (home)launcher 只是 应用开发非ROM 开发
- NavicatPremium4MAC
- 网页设计师和开发者之间的区别
- runtime 运行时得问题
- 多线程的自动管理各类锁的不同 线程池例子