Array中对象的排序
2024-09-20 12:57:34
1.子母排序
NSArray *kArrSort = [_dic allKeys]; //这里是字母数组:,g,a,b.y,m……
NSArray *resultkArrSort = [kArrSort sortedArrayUsingComparator:^NSComparisonResult(id obj1, id obj2) {
return [obj1 compare:obj2 options:NSNumericSearch];
}];
NSLog(@"%@",resultkArrSort);
2.数值排序
// sortedArrayUsingComparator:方法并不会改变array数组内部的顺序
NSArray *sortedArray = [array sortedArrayUsingComparator:^NSComparisonResult(NSNumber *obj1, NSNumber *obj2) {
if ([obj1 intValue] < [obj2 intValue]) {
return NSOrderedDescending;
} else {
return NSOrderedAscending;
} }];
NSLog(@"%@", sortedArray);
3.使用NSDescriptor进行排序
我们将要排序的对象是一个Persion类,如下定义:
- @interface Person : NSObject
- @property (nonatomic, copy) NSString *name;
- @property (nonatomic, copy) NSString *surname;
- @property (nonatomic, strong) NSDate *dateOfBirth;
- @end
而数组中包含如下内容:
- Smith John 03/01/1984
- Andersen Jane 16/03/1979
- Clark Anne 13/09/1995
- Smith David 19/07/1981
- Johnson Rose 22/02/1989
- NSSortDescriptor *firstDescriptor = [[NSSortDescriptor alloc] initWithKey:@"surname" ascending:YES];
- NSSortDescriptor *secondDescriptor = [[NSSortDescriptor alloc] initWithKey:@"name" ascending:YES];
- NSArray *sortDescriptors = [NSArray arrayWithObjects:firstDescriptor, secondDescriptor, nil];
- NSArray *sortedArray = [self.persons sortedArrayUsingDescriptors:sortDescriptors];
上面代码的排序结果如下所示:
- Andersen Jane
- Clark Anne
- Johnson Rose
- Smith David
- Smith John
最新文章
- Java,extends,继承
- 【jQuery小实例】js 插件 查看图片
- Oracle trunc()函数的用法
- 【平面设计AFTER】读到的设计海报分层法
- PBOC协议中对于所有电子存折/电子钱包应用的预处理
- 蓝牙物理链路类型:SCO和ACL链路
- python 学习笔记十二 html基础(进阶篇)
- 正则基础之 \b 单词边界
- Android -- 初探MVP模式
- IE8的Textarea滚动条乱跳的解决方案
- bzoj 1964: hull 三维凸包 计算几何
- 【JavaScript运算符与表达式】
- Redis学习——数据结构介绍(四)
- .Net Core 使用 System.Drawing.Common 部署到CentOS上遇到的问题
- LeetCode(105):从前序与中序遍历序列构造二叉树
- idea显示左边的树形项目结构
- SQL SERVER 事务的使用(tran)
- Python函数——装饰器
- python数据分析Adult-Salary预测
- (转)java并发编程--Executor框架
热门文章
- [LINK]List of .NET Dependency Injection Containers (IOC)
- Replication--将LSN转换成16进制
- 苹果软件App上架问题
- IE6 IE7 IE8 FF兼容符号
- [ActionScript 3.0] 判断XML属性是否存在
- iOS 图片的存储以及读取和删除
- 参照跟老男孩学linux运维搭建nagios实验小结
- 百度地图API —— 制作多途经点的线路导航
- ubuntu15.04下安装jdk8
- 条目二十八《正确理解由reverse_iterator的base()成员函数所产生的iterator的用法》