日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

为集合排序的三个方法

發布時間:2023/12/1 编程问答 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 为集合排序的三个方法 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

?// 為集合字符串排序(cmpare:)

?? ? ? ? ? ?

? ? ? ? ? ? // - null :空類型? 就是字符型的0;

? ? ? ? ? ? // - [NSNull null]是對象類型,能夠存入集合的數據:為其分配了內存,但其中的值為空(不能被排序否則程序會崩潰);

? ? ? ? ? ? // - 對非對象類型指針賦空值用null(如C指針)

?? ? ? ? ? ?

? ? ? ? ? ? // 對集合內的字符串排序:調用排序方法后會創建一個新的集合返回

? ? ? ? ? ? // - sortedArrayUsing...(sort:分類)

? ? ? ? ? ? NSArray *group = @[@"red", @"green", @"blue"];

?

? ? ? ? ? ?

? ? ? ? ? ? // 1.選擇器排序:調用系統的排序方法,即字符串的比較方法

? ? ? ? ? ? NSArray *reorder_S = [group sortedArrayUsingSelector:@selector(compare:)];

? ? ? ? ? ? NSLog(@"selector:%@", reorder_S);

?? ? ? ? ? ?

? ? ? ? ? ? // 2.描述排序

? ? ? ? ? ? // - 提取排序的信息

? ? ? ? ? ? // > Key:沒有key所以使用nil(為自定義對象排序Key就是排序的屬性)

? ? ? ? ? ? // > ascending:布爾類型,YES為升序(ASKII碼值)

? ? ? ? ? ?

? ? ? ? ? ? // - 為方法傳遞排序的參數

? ? ? ? ? ? NSSortDescriptor *group_D = [NSSortDescriptor sortDescriptorWithKey:nil ascending:NO];

?? ? ? ? ?

? ? ? ? ? ? NSArray *reorder_D = [group sortedArrayUsingDescriptors:@[group_D]];

? ? ? ? ? ? NSLog(@"descriptor:%@", reorder_D);

?? ? ? ? ? ?

? ? ? ? ? ? // 3.代碼塊排序:也是調用字符串的比較方法

? ? ? ? ? ? NSArray *reorder_B = [group sortedArrayUsingComparator:^NSComparisonResult(NSString *obj1, NSString *obj2) {return [obj1 compare:obj2];}];

? ? ? ? ? ? NSLog(@"block:%@",reorder_B);

? ? ? ? ? ? ?

?? ? ? ? ? ?

? ? ? ? ? ? // - 參數:不會影響排序的順序

? ? ? ? ? ? // > SortCurrent:并行排序,即多線程排序,特點:安全性不好

? ? ? ? ? ? // > SortStable:串行排序,即打單步執行:數據龐大可能效率有點低

? ? ? ? ? ? // - block的實現,因為是取值兩兩比較:使用結果僅有三個,根據返回結果就確定大小然后進行返回

? ? ? ? ? ? reorder_B = [group sortedArrayWithOptions:NSSortStable usingComparator:^NSComparisonResult(NSString *obj1, NSString *obj2) { return [obj1 compare:obj2]; }];

?? ? ? ? ? ?

?? ? ? ? ? NSLog(@"block:%@",reorder_B);

?

轉載于:https://www.cnblogs.com/pruple/p/5252207.html

總結

以上是生活随笔為你收集整理的为集合排序的三个方法的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。