排序的几种方法 oc
s.name = @"zhangyu";
s.age = 20;
Student *s1 = [[Student alloc] init];
s1.name = @"zhangyuzi";
s1.age = 18;
Student *s2 = [[Student alloc] init];
s2.age = 21;
s2.name = @"lirongsheng";
NSArray *arr = @[
s,
s1,
s2
];
//自定义对象排序
NSArray *stuArr = [arr sortedArrayUsingSelector:@selector(compareWithAge:)];
NSLog(@"%@",stuArr);
}
return 0;
@interface Student : NSObject
@property (nonatomic, strong) NSString *name;
@property (nonatomic, assign) int age;
//自定义比较方法(排序时调用),要遵循compare:方法
//格式:-(NSComparisonResult)方法名:(要比较的类名 *)参数名
-(NSComparisonResult)compareWithName:(Student *)stu;
-(NSComparisonResult)compareWithAge:(Student *)stu;
@implementation Student
-(NSString *)description{
return [NSString stringWithFormat:@"%@,%d",_name,_age];
}
//比较方法的实现
-(NSComparisonResult)compareWithName:(Student *)stu{
//对象的比较结果就相当于属性比较结果,self,最开始代表第0个元素,后面再比较时,代表交换后的满足条件的对象
/*
0 self a[0];
1 self a[1]
2 self a[2]
*/
//当self放在第一个参数是,代表升序,放在第二个参数时,代表降序 只有result为1的时候才进行交换
NSComparisonResult result = [stu.name compare: self.name];
return result;
}
-(NSComparisonResult)compareWithAge:(Student *)stu{
NSComparisonResult result;
if (self.age < stu.age) {
result = 1;
}else{
result = -1;
}
return result;
}
转载于:https://www.cnblogs.com/zhangyu666666/p/4931124.html
排序的几种方法 oc相关推荐
- python列表的排序方法_pythonlist排序的两种方法及实例
本文主要介绍了python list排序的两种方法及实例讲解.具有很好的参考价值,下面一起来看下吧 对List进行排序,Python提供了两个方法 方法1.用List的内建函数list.sort进行排 ...
- 按对象某属性排序的几种方法
按对象某属性排序的几种方法: 第一种,可以实现边添加边排序,需要用到TreeSet. 第二种,用数组存放对象们,但是不需单独取出某属性排列好再重存,而是在原数组上用比较器重新排一次序.需要用到Arra ...
- C++结构体多级排序的三种方法
C++结构体多级排序的三种方法 struct node{int chinese,math;char name[15]; }; 需求:按数学成绩从大到小排序 1.自定义比较器 //自定义比较函数 bo ...
- oracle进行排序,oracle排序的几种方法
1.创建数据库表 CREATE TABLE USER_INFO ( USERID VARCHAR2(10 BYTE) NOT NULL, USERNAME ...
- C# hashTable的遍历【2种方法】与排序【3种方法】
private void Form1_Load(object sender, EventArgs e) { Hashtable ht = new Hashtable(); ht.Add("j ...
- java的arraylist_Java ArrayList排序的3种方法
首页 > 基础教程 > 集合框架 > ArrayList类 Java ArrayList排序的3种方法 1. 使用Collections.sort()方法进行排序 ArrayList ...
- 计算机word降序排列怎么做,word中怎么进行排序的两种方法
word文档中表格除了作为我们的编辑和展示功能之外,还可以进行排序功能,十分方便,那么下面就由学习啦小编给大家分享下word中进行排序的技巧,希望能帮助到您. word中进行排序方法一: 步骤一:将光 ...
- python list列表排序的两种方法及实例讲解
对List进行排序,Python提供了两个方法 方法1.用List的内建函数list.sort进行排序 list.sort(func=None, key=None, reverse=False) Py ...
- list排序方法python_python list 排序的两种方法及实例讲解
对 list 进行排序,Python 提供了两个方法: 方法1. 用 list 的内建函数 list.sort 进行排序 list.sort(func=None, key=None, reverse= ...
最新文章
- PubChem分子库
- 人工智能恶意使用报告:预测、预防和缓解
- “禁止大数据杀熟”拟入法!个性化推荐功能也应提供拒绝选项
- BCGSoft Demo示例展示:控件示例集合(1/2)
- 关于Python中迭代器的作用
- .adobe.ETH.btc.frendi.AUF.AYE.qwex后缀勒索病毒
- 如果一个人请优雅的活着。
- arm的bin二进制代码分析
- Oracle 列类型说明
- 武汉市房价数据挖掘与可视化分析(Python)
- 红米html查看器,小米 红米【AC2100】一键刷BREED【30秒刷完】小白脑残专用 无需工具TELNET + 检查坏块...
- 设置swiper中的高度
- 程序员的笔记本选择推荐
- 主板中的电池是怎样放电的?
- 有些事情,现在不想就晚了
- 斐讯路由器宽带运营商服务器,斐讯(PHICOMM)路由器
- c语言程序设计陈世清上海交通大学出版社,C语言程序设计
- plsql激活码(永久可用)
- 对于line-height的一些理解
- UML-----包图
热门文章
- 解决 Xcode10 编译错误 ld: library not found for -lstdc++6.0.9
- AndroidStudio 如何关闭 Install Run
- 第二次讲课内容(函数和快速幂)
- 简单的socket通信实现
- 压缩命令tar cf xx.tar -C的正确用法
- 求 1000 以内的完数
- 华为计算机如何计算sina,一道华为的“简单四则运算”题
- php 降低图像大小,在PHP中调整图像大小
- nb信号和4g信号_手机信号很强但是4G网络却很卡?学会这三招,立马恢复网速
- LTE小区选择和重选