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
复制代码

 

posted @   ma_fighting  阅读(718)  评论(0编辑  收藏  举报
编辑推荐:
· Java 中堆内存和栈内存上的数据分布和特点
· 开发中对象命名的一点思考
· .NET Core内存结构体系(Windows环境)底层原理浅谈
· C# 深度学习:对抗生成网络(GAN)训练头像生成模型
· .NET 适配 HarmonyOS 进展
阅读排行:
· 如何给本地部署的DeepSeek投喂数据,让他更懂你
· 超详细,DeepSeek 接入PyCharm实现AI编程!(支持本地部署DeepSeek及官方Dee
· 用 DeepSeek 给对象做个网站,她一定感动坏了
· .NET 8.0 + Linux 香橙派,实现高效的 IoT 数据采集与控制解决方案
· DeepSeek处理自有业务的案例:让AI给你写一份小众编辑器(EverEdit)的语法着色文件
历史天气查
点击右上角即可分享
微信分享提示