OC-集合2(字典,NSSet)
来源:互联网 发布:51testing 软件测试 编辑:程序博客网 时间:2024/06/08 10:35
字典
字典就是关键字及其定义(描述)的集合。Cocoa中的实现字典的集合NSDictionary在给定的关键字(通常是一个NSString)下存储一个数值(可以是任何类型的对象)。即:存储方式为通过 键-值 对的方式来存放数据的一种无序集合。
字典也被称为散列表或关联数组。
不同于数组,字典使用的是键查询的优化存储方式。它可以立即找出要查询的数据,而不需要遍历整个数组进行查找。
一般通过key来操作object。某种意义上,对字典的运算实际上就是对key值的运算。
字典分为不可变字典NSDictionary和可变字典NSMutableDictionary。
1.初始化:方法用逗号
NSDictionary *dictionary = [[NSDictionary alloc] initWithObjectsAndKeys:@"one",@"1",@"two",@"2", nil]; NSDictionary *dictionary2 = [NSDictionary dictionaryWithObjectsAndKeys:@"one",@"1",@"two",@"2", nil];
2.字典的快速生成
//key : value NSDictionary *dictionary3 = @{@"1":@"one", @"2":@"two"}; NSLog(@"dic3 = %@",dictionary); //简化适合不可变字典,不推荐可变字典使用。
3.查询一个对象
id object = [dictionary3 objectForKey:@"2"]; NSLog(@"object = %@",object);
4.取出所有的key
NSArray *keys = [dictionary3 allKeys]; NSLog(@"keys = %@",keys);
5.取出所有的对象
NSArray *values = [dictionary3 allValues]; NSLog(@"values = %@",values);
字典的遍历
//取出字典中所有的key或object,然后通过数组的遍历方法逐个取出对象: NSArray *keys = [dictionary3 allKeys]; //for循环 for (int i = 0; i < keys.count; i ++) { NSString *key = [keys objectAtIndex:i]; id object = [dictionary3 objectForKey:key]; NSLog(@"objec = %@",object); } // 快速枚举 for (id keys in dictionary3) { NSLog(@"object1 = %@",keys); id obj = [dictionary3 objectForKey:keys]; NSLog(@"obj = %@",obj); }//注意:键不可以重复,值可以 // 当设置的key值与原有key值重复时,会直接覆盖原来的键值对,这 也是更改字典数据的方法。 // 和数组一样,在遍历的同时不要对字典做出改动,那样或导致异常。
NSMutableDictionary
//初始化 NSMutableDictionary *mutableDic1 = [NSMutableDictionary dictionaryWithObjectsAndKeys:@"one",@"1",@"two",@"2",@"three",@"3",@"four",@"4", nil]; //增 [mutableDic1 setObject:@"five" forKey:@"5"]; NSLog(@"dic1 = %@",mutableDic1); //删 [mutableDic1 removeObjectForKey:@"5"]; NSLog(@"dic1 = %@",mutableDic1); //查 id object33 = [mutableDic1 objectForKey:@"4"]; NSLog(@"ob33 = %@",object33); //改(根据key将原来的覆盖掉) [mutableDic1 setObject:@"three three" forKey:@"3"]; NSLog(@"mudic1 = %@",mutableDic1);//- setObject:forKey:方法,如果在字典中无法找到该key,则做添加处理。
NSSet
完全无序集合NSSet;
/*初始化如下,非常类似数组:分为NSSet和NSMutableSet*/ //用于去除重复数 NSSet *set1 = [NSSet setWithObjects:@"1",@"2",@"2",@"5",@"5",@"7", nil];/*里面的数据无法按照顺序取出,只能取出随即一个,或者一次性全部取出:*/ //取一个 id object5 = [set1 anyObject]; NSLog(@"ob5 = %@",object5); //取所有的 NSArray *setArr = [set1 allObjects]; NSLog(@"setArr = %@",setArr); /* NSSet对象中不能存放重复对象,如果出现重复,最终只会保留一个,NSSet也常用来清除其他集合中的重复对象*/ //去除数组里面的重复数 NSArray *arr = @[@"1",@"2",@"2",@"5",@"5",@"7"]; NSSet *set2 = [NSSet setWithArray:arr]; NSArray *arr2 = [set2 allObjects]; NSLog(@"arr2 = %@",arr2);
2 0
- OC-集合2(字典,NSSet)
- OC中NSDictionary(字典)、NSMutableDictionary(可变字典)、NSSet(集合)、NSMutableSet(可变集合)得常用方法
- OC基础—集合之NSSet、NSDictionary(字典)、NSMutableDictionary
- OC字典(NSDictionary)和集合(NSSet)的总结
- iOS OC (五) 字典NSDictionary 数组 NSArray 集合 NSSet
- NSDictionary 字典 集合NSSet
- Foundation -- OC集合 --NSSet
- OC基础-NSSet集合
- OC:OC中的集合类-NSSet(二)
- OC学习之道:OC对象,字典,集合的使用方法NSDictionary,NSMutableDictionary, NSSet,NSMutableSet,NSCountedSet
- OC基础数据类型-集合(NSSet)
- iOS中的遍历(数组NSArray,字典NSDictionary,集合NSSet)
- iOS中的遍历(数组NSArray,字典NSDictionary,集合NSSet)
- 黑马程序员-oc基础-集合NSSet,NSMutableSet
- OC中的集合类NSSet、NSArray、NSDictionary
- OC数组字典集合
- OC集合与字典
- OC--数组、字典、集合
- TopCoder SRM 668 Div2 Problem 1000 - AnArray (数学)
- 使用GetProcAddress获取C++重载函数
- 2015 ACM/ICPC Asia Regional Shenyang Online
- 删除链表中某结点
- 技术人生:故事之三十三你做过经理吗?
- OC-集合2(字典,NSSet)
- 管道的应用(pipe)《深入分析Linux内核源码》 http://blog.csdn.net/wangpengqi/article/details/7996182
- 如何解决C/C++中stack overflow问题
- python字符串
- 用win32api写的贪吃蛇
- Java中 set,list,array(集合与数组)、Map相互转换
- 我选择死亡
- windows 下修复Ubuntu启动项
- 图像算法---基于局部均值的锐化算法研究