數(shù)組排序方法

數(shù)組排序方法介紹 (注意:排序后返回值是不可變數(shù)組類型)

//排序方法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];
                         }];

//打印排序后的數(shù)組
    NSLog(@"%@",newarr4);
    

//排序方法2.

//創(chuàng)建對象,并給相應(yīng)對象的屬性賦值
    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;
    
//把對象添加到數(shù)組中
    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 優(yōu)先,sort 其次。
    
//打印排序后數(shù)組
    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]);
    }
    
    //比較方法實現(xiàn)(注意返回值類型,此方法也可實現(xiàn)在其他類中,只需頭文件引入即可)
    -(NSComparisonResult)myCompare:(Student *)other
    {
        return -1 * (self.age - other.age);
    }
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

推薦閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 134,993評論 19 139
  • javascript的sort() 方法用于對數(shù)組的元素進行排序。 不帶參數(shù)的情況下 先看以下的代碼 輸出結(jié)果 在...
    櫻桃小丸子兒閱讀 4,543評論 0 25
  • 第5章 引用類型(返回首頁) 本章內(nèi)容 使用對象 創(chuàng)建并操作數(shù)組 理解基本的JavaScript類型 使用基本類型...
    大學(xué)一百閱讀 3,272評論 0 4
  • 老公接到電話,調(diào)到吉安一中已成定局。接著就是考慮去那邊的吃住等事項。正準(zhǔn)備尋租房頭等大事,他同學(xué)告訴他學(xué)校有公寓出...
    獨孤草原狼閱讀 236評論 0 0
  • 【CSS簡介】 Css它對html來講做出了很多的貢獻其中有一個很重要的貢獻就是將所有標(biāo)簽中跟樣式有關(guān)的屬性都集中...
    黑色的夜閱讀 260評論 0 0