数组排序方法

数组排序方法介绍 (注意:排序后返回值是不可变数组类型)

//排序方法1 (块排序)

    NSArray * arr4 = @[@"aaa",@"ccc",@"ddd",@"bbb"];
    NSArray * newarr4 = [arr4 sortedArrayUsingComparator:^NSComparisonResult(NSString * obj1, NSString * obj2)
                         {
                             NSString * str1 = (NSString *)obj1;
                             NSString * str2 = (NSString *)obj2;

                             if ([str1 compare:str2] == NSOrderedDescending)
                             {
                                 return NSOrderedDescending;
                             }
                             else if ([str1 compare:str2])
                             {
                                 return NSOrderedAscending;
                             }else
                                 return NSOrderedSame;
                             
                             return  [obj1 compare:obj2];
                         }];

//打印排序后的数组
    NSLog(@"%@",newarr4);
    

//排序方法2.

//创建对象,并给相应对象的属性赋值
    Student * stu = [Student new];
    stu.name = @"唐僧";
    stu.age = 23;
    Student * stu1 = [Student new];
    stu1.name = @"孙悟空";
    stu1.age = 1500;
    Student * stu2 = [Student new];
    stu2.name = @"猪八戒";
    stu2.age = 1800;
    Student * stu3 = [Student new];
    stu3.name = @"沙和尚";
    stu3.age = 32;
    
//把对象添加到数组中
    NSArray * team = @[stu,stu1,stu2,stu3];

//按年龄降序排列
    NSSortDescriptor * sort = [NSSortDescriptor sortDescriptorWithKey:@"age" ascending:NO];

//按名字升序排列
    NSSortDescriptor * sort1 = [NSSortDescriptor sortDescriptorWithKey:@"name" ascending:YES];

    team =  [team sortedArrayUsingDescriptors:@[sort1,sort]];//sort1 优先,sort 其次。
    
//打印排序后数组
    for (int i = 0; i < team.count; i++)
    {
        NSLog(@"%@",team[i]);
    }
    

//排序方法3 (使用自定义的排序方法排序)

    NSArray * team = @[stu,stu1,stu2,stu3];
    
  //使用自定义的比较方法进行排序
    team =  [team sortedArrayUsingSelector:@selector(myCompare:)];
    
    for (int i = 0; i<team.count; i++)
    {
        NSLog(@"%@",team[i]);
    }
    
    //比较方法实现(注意返回值类型,此方法也可实现在其他类中,只需头文件引入即可)
    -(NSComparisonResult)myCompare:(Student *)other
    {
        return -1 * (self.age - other.age);
    }
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,269评论 19 139
  • javascript的sort() 方法用于对数组的元素进行排序。 不带参数的情况下 先看以下的代码 输出结果 在...
    樱桃小丸子儿阅读 4,583评论 0 25
  • 第5章 引用类型(返回首页) 本章内容 使用对象 创建并操作数组 理解基本的JavaScript类型 使用基本类型...
    大学一百阅读 3,281评论 0 4
  • 老公接到电话,调到吉安一中已成定局。接着就是考虑去那边的吃住等事项。正准备寻租房头等大事,他同学告诉他学校有公寓出...
    独孤草原狼阅读 237评论 0 0
  • 【CSS简介】 Css它对html来讲做出了很多的贡献其中有一个很重要的贡献就是将所有标签中跟样式有关的属性都集中...
    黑色的夜阅读 264评论 0 0