黑马程序员技术交流社区
标题:
关于关于自定义对象按照一定的格式排序的实现
[打印本页]
作者:
UKnowINeedYou
时间:
2016-4-9 00:17
标题:
关于关于自定义对象按照一定的格式排序的实现
- (NSComparisonResult)comparestu:(Student *)stu //排序规则
{
NSComparisonResult result = [[NSNumber numberWithInt:stu.score]compare:[NSNumber numberWithInt:self.score]]; //先按分数来排名
if (result == NSOrderedSame) { //如果分数相同 按年龄
result = [[NSNumber numberWithInt:stu.age]compare:[NSNumber numberWithInt:self.age]];
if(result == NSOrderedSame) // 如果年龄一样,就按姓名排序
{
//如果年龄相同按姓名
result = [self.name compare:stu.name];
}
}
return result;
}
作者:
muzipiao
时间:
2016-4-9 09:40
我写的和你的不一样,假设数组中存放了几个对象,排序如下
//利用循环便利数组
for (int i=0; i<[mArr count]-1; i++) {
for (int j=i+1; j<[mArr count]; j++) {
//按照成绩排序由大到小排序
if ([mArr[i] getScore]<[mArr[j] getScore]) {
[mArr exchangeObjectAtIndex:i withObjectAtIndex:j];
}else if([mArr[i] getScore]==[mArr[j] getScore]){
//成绩相同按照年龄排序由大到小排序
if ([mArr[i] getAge]<[mArr[j] getAge]) {
[mArr exchangeObjectAtIndex:i withObjectAtIndex:j];
}else if([mArr[i] getAge]==[mArr[j] getAge]){
//年龄相同,按照姓名排序由大到小排序
if([[mArr[i] getName] compare:[mArr[j] getName]]<0){
[mArr exchangeObjectAtIndex:i withObjectAtIndex:j];
}
}
}
}
}
复制代码
作者:
妖精的尾巴_wzn
时间:
2016-5-8 00:09
加油加油,楼主努力啊!
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2