ios-遍历和排序
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 | // // main.m // OC-遍历和排序-homework // // Created by dllo on 16/2/25. // Copyright © 2016年 dllo. All rights reserved. // #import <Foundation/Foundation.h> #import "Person.h" int main( int argc, const char * argv[]) { @autoreleasepool { // 要求 : // 1、创建1个包含5个字符串元素的数组; 2、 for循环倒序输出所有元素; 3、 for...in完成所有字符串元素的拼接( 成 个 // 新的字符串),并输出拼接好的字符串。 NSArray *strArray = @[@ "nanjing" , @ "shanghai" , @ "beijing" , @ "shangxi" , @ "chongqing" ]; for ( int i = 0; i < strArray.count; i++) { NSLog (@ "%@" , [strArray objectAtIndex:strArray.count - 1 - i]); } NSMutableString *str = [ NSMutableString stringWithCapacity:20]; for ( NSString *string in strArray) { [str appendString:string]; } NSLog (@ "%@" , str); // 要求: // 1、创建1个包含5个person对象的数组(姓名 英 ); 2、 for循环找到年龄最 的Person对象; 3、 for...in遍历数组,把 于某个年龄的Person对象的姓名后 拼接上字符串“-brother”。 Person *per1 = [[Person alloc]initWithName:@ "ma" sex:@ "male" age:26]; Person *per2 = [[Person alloc]initWithName:@ "liutaifeng" sex:@ "male" age:22]; Person *per3 = [[Person alloc]initWithName:@ "zhengfeng " sex:@ "male" age:23]; Person *per4 = [[Person alloc]initWithName:@ "ma" sex:@ "male" age:27]; Person *per5 = [[Person alloc]initWithName:@ "ma" sex:@ "male" age:29]; NSArray *array = [ NSArray arrayWithObjects:per1, per2, per3, per4, per5, nil ]; Person *per = [[Person alloc]initWithName:@ "majian" sex:@ "male" age:29]; for ( int i = 0; i < array.count; i++) { if ([[array objectAtIndex:i] age] < [per age]) { per = [array objectAtIndex:i]; } } NSLog (@ "%@" , [per name]); NSArray *newArray = [array sortedArrayUsingSelector: @selector (compareWithName:)]; NSLog (@ "%@" , newArray); NSArray *newArray2 = [array sortedArrayUsingSelector: @selector (compareWithSex:)]; NSLog (@ "%@" , newArray2); NSArray *newArray3 = [array sortedArrayUsingSelector: @selector (compareWithAge:)]; NSLog (@ "%@" , newArray3); NSSortDescriptor *sortOfName = [[ NSSortDescriptor alloc]initWithKey:@ "name" ascending: YES ]; NSSortDescriptor *sortOfAge = [[ NSSortDescriptor alloc]initWithKey:@ "age" ascending: YES ]; NSArray *array1 = [array sortedArrayUsingDescriptors:@[sortOfName, sortOfAge]]; NSLog (@ "%@" , array1); } return 0; } |
Person.m文件:
// // Person.m // OC-遍历和排序-homework // // Created by dllo on 16/2/25. // Copyright © 2016年 dllo. All rights reserved. // #import "Person.h" @implementation Person - (instancetype)initWithName:(NSString *)name sex:(NSString *)sex age:(NSInteger)age{ self = [super init]; if (self) { _name= name; _age = age; _sex = sex; } return self; } - (NSComparisonResult)compareWithName:(Person *)anOtherPerson{ return [self.name compare:anOtherPerson.name]; } - (NSComparisonResult)compareWithAge:(Person *)anOtherPerson{ if (self.age > anOtherPerson.age) { return NSOrderedDescending; }else if(self.age < anOtherPerson.age){ return NSOrderedAscending; }else{ return NSOrderedSame; } } - (NSComparisonResult)compareWithSex:(Person *)anOtherPerson{ return [self.sex compare:anOtherPerson.sex]; } - (NSString *)description { return [NSString stringWithFormat:@"name:%@, sex:%@, age:%ld", _name, _sex, _age]; } @end
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Java 中堆内存和栈内存上的数据分布和特点
· 开发中对象命名的一点思考
· .NET Core内存结构体系(Windows环境)底层原理浅谈
· C# 深度学习:对抗生成网络(GAN)训练头像生成模型
· .NET 适配 HarmonyOS 进展
· 如何给本地部署的DeepSeek投喂数据,让他更懂你
· 超详细,DeepSeek 接入PyCharm实现AI编程!(支持本地部署DeepSeek及官方Dee
· 用 DeepSeek 给对象做个网站,她一定感动坏了
· .NET 8.0 + Linux 香橙派,实现高效的 IoT 数据采集与控制解决方案
· DeepSeek处理自有业务的案例:让AI给你写一份小众编辑器(EverEdit)的语法着色文件