OC字典集合遍历以及排序_第1页
OC字典集合遍历以及排序_第2页
OC字典集合遍历以及排序_第3页
OC字典集合遍历以及排序_第4页
OC字典集合遍历以及排序_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、 /数组遍历 /* 数组遍历 原理:通过for循环的循环变量用作数组元素下标来获取不同下标的元素。 循环次数就是数组元素的个数。 */ NSArray *cityArray = "bj","hn","sx","sd","xg" /字典 NSDictionary *dic =NSDictionary dictionaryWithObjectsAndKeys:"zhang3","name","chiF","hobby",

2、"18","age", nil; /集合 NSSet *set=NSSet setWithObjects:"123","456","789","1011", nil; for (int i=0 ; i<cityArray count; i+) /根据下标从数组中取出对应下标 NSString * string = cityArray objectAtIndex:i; NSLog("*数组*%",string); /字典遍历 /* 字典遍历 原理:先获

3、取字典中所有的key,存储到数组中,遍历数组依次取 出每一个key,然后根据key从字典中取出对应的value。 字典取值要通过key取出对应的value。 循环次数等于字典的元素个数。 */ NSArray *key=dic allKeys;/取出dic这个字典当中 的所有的key值(存储到数组) for (int i=0 ; i<key count; i+) /通过数组元素的下标取出对应的key NSString *keyy=key objectAtIndex:i; NSString* valuee=dic objectForKey:keyy; NSLog("key= %

4、*字典* value = %",keyy,valuee); /集合遍历 /* 原理: 用集合的allObject属性先取到集合的所有元素存储到数组 中,再通过for循环的循环变量用作下标来取到每个元素 */ NSArray *setObject = set allObjects; for (int i=0 ; i<setObject count; i+) /从集合的 allObjects(setObject数组)中获取对应的下标所对应的元素,并输出 NSLog("集合*%",setObject objectAtIndex:i); NSArray *strin

5、g ="xiaoM","erQ","sanP","siX","daC" NSMutableArray *temp =NSMutableArray arrayWithCapacity:0; for (int i=0 ; i<string count; i+) temp addObject:string objectAtIndex:(string.count-1-i); NSLog("*倒取*%",temp); NSDictionary *ren ="name&q

6、uot;:"dada","sex":"man","age":"28" NSArray*keey =ren allKeys; for (int i=0 ; i<ren count; i+) NSLog("*字典* *key* % *value*%",keey objectAtIndex:i,ren objectForKey:keey objectAtIndex:i); / NSEnumerator: / NSEnumerator -数组-正序遍历 NSEnumerator

7、* arrayEnum = cityArray objectEnumerator; id value = nil;/存储数组元素对象 while (value = arrayEnum nextObject) NSLog("*NSEnumerator*%",value); /数组-倒序遍历 NSEnumerator *arrayReverse=cityArray reverseObjectEnumerator; id value1=nil; while (value1=arrayReverse nextObject) NSLog("* NSEnumerator倒序*

8、%",value1); /字典 NSEnumerator NSEnumerator *dictEnmu =ren objectEnumerator; id value2 = nil; while (value2=dictEnmu nextObject) NSLog("*字典*%",value2); / NSEnumerator 集合 NSEnumerator*setEnmu=set objectEnumerator; id value3= nil; while (value3=setEnmu nextObject) NSLog("*集合*%",

9、value3); /* * NSEnumerator:遍历数组每个索引处的对象,而 NSEnumerator它是用来描述这种集合迭代的运算方式 通过objectEnumerator向数组请求一个枚举器,如果想使用从后往前浏览打印可以使用reverseObjectEnumerator方法,在获得枚举器后,开始循环,每次循环都向这个枚举器请求他的下一个对象:nextObject返回nil值时候,代表循环结束 注意:不可以对可变数组(可变字典)进行一个增加或者删除的操作,因为枚举器是不可以改变的 */ /for.in遍历 /遍历数组 for (NSString*city in cityArray)

10、NSLog("*for.in遍历*%",city); /字典 for (NSString *key in ren) NSLog("*字典*%",ren objectForKey:key); /集合 for (NSString*setS in set) NSLog("*集合*%",setS); /数组排序:因为在我们集合类当中有数组中的元素是有序排列,而字典集合排列是无序的, /只能对数组排序 NSArray * array0 ="zhang3","li4","wang5",&

11、quot;zhao6" NSMutableArray*array00="zhang3","li4","wang5","zhao6","hu8" mutableCopy; / 使用 NSSortDescriptor(排序描述) /* * 它由以下参数组成: 键:对于一个给定集合,对应值的键位将对集合中的每个对象进行排序; 升序:指定一个集合是否按照升序(YES)还是降序(NO)进行排序的BOOL值; */ /"self":代表的是直接可以进行排序的,如果对一个类的属性

12、进行排序,那么我们直接放"属性名"即可后边yes代表升序,no代表降序 /不可变数组 NSSortDescriptor *arrayNSSortDescriptor =NSSortDescriptor alloc initWithKey:"self" ascending:1; NSArray*sortedStringArray =array0 sortedArrayUsingDescriptors:NSArray arrayWithObjects:arrayNSSortDescriptor, nil; NSLog("排序*NSSortDescr

13、iptor*%",sortedStringArray); /可变数组 array00 sortUsingDescriptors:NSArray arrayWithObjects:arrayNSSortDescriptor, nil; NSLog("*可变数组*%",array00); /使用数组方法,传入数组中的两个元素比较的方法名 /不可变数组 /compare:默认是一个升序排序 /selector方法选择器 NSArray *sortedArray =array0 sortedArrayUsingSelector:selector(compare:); NS

14、Log("->>%",sortedArray); /可变数组 array00 sortedArrayUsingSelector:selector(compare:); NSLog(">>>>>>>%",array00); /数组排序-数组中存放自定义类对象排序- Person *per1=Person alloc initWithName:"mhang3" age:99 sex:"m" Person *per2=Person alloc initWithName

15、:"zhang4" age:19 sex:"w" Person *per3=Person alloc initWithName:"ahang5" age:223 sex:"m" Person *per4=Person alloc initWithName:"zhang6" age:217 sex:"w" Person *per5=Person alloc initWithName:"zhang7" age:20 sex:"m" Pers

16、on *per6=Person alloc initWithName:"bhang08" age:23 sex:"w" Person *per7=Person alloc initWithName:"zhang9" age:10 sex:"m" /生成数组对象 NSArray *perArray =per1,per2,per3,per4,per5,per6,per7; / NSSortDescriptor /生成初始化,排序描述-按照人名进行排序 NSSortDescriptor*sortWithName =NSS

17、ortDescriptor alloc initWithKey:"name" ascending:YES; /通过排序描述对数组进行排序,生成新的排序后的数组 NSArray *sortedWithName = perArray sortedArrayUsingDescriptors:NSArray arrayWithObjects:sortWithName, nil; NSLog("sortedWithName *%",sortedWithName); /年龄 NSSortDescriptor*sortWithAge =NSSortDescriptor

18、 alloc initWithKey:"age" ascending:0; NSArray*age0=perArray sortedArrayUsingDescriptors:NSArray arrayWithObjects:sortWithAge, nil; NSLog("sortedWithAge *%",age0); /可变数组 生成初始化描述 - 按照性别升序 NSSortDescriptor*sortWithSex =NSSortDescriptor alloc initWithKey:"sex" ascending:0;

19、NSMutableArray *mArray =perArray mutableCopy; mArray sortUsingDescriptors:NSArray arrayWithObjects:sortWithSex, nil; NSLog("*mArray*%",mArray); /使用数组排序方法传入数组中两个元素比较的方法名 /不可变数组排序 /按照自定义排序规范(姓名) NSArray *resultWithNameArray = perArray sortedArrayUsingSelector:selector(compareByAge:); NSLog("%",resultWithNameArray); NSArray *rrr =perArray sortedArrayUsingSelector:selector(compareByName:); NSLog("rrrr*%",rrr);+(instancetype)personWithName:(NSString*)name age:(int)age sex:(NSString*)sex return Pe

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论