iOS數組排列

來源:互聯網
上載者:User

標籤:

1、這個方法可以實現數組的倒敘輸出  

reverseObjectEnumerator

 NSArray *array = @[@"1",@"2",@"3",@"4"];

    for (NSString *string  in [array reverseObjectEnumerator]) {

        NSLog(@"string ===== %@",string);

    }

log日誌: 

2016-06-10 16:28:54.458 自訂搜尋[4242:322108] string ===== 4

2016-06-10 16:28:54.459 自訂搜尋[4242:322108] string ===== 3

2016-06-10 16:28:54.460 自訂搜尋[4242:322108] string ===== 2

2016-06-10 16:28:54.461 自訂搜尋[4242:322108] string ===== 1

2、這個方法也可以實現倒敘排列

[array enumerateObjectsWithOptions:NSEnumerationReverse usingBlock:^(id  _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) {

        NSLog(@"obj ==== %@",obj);

    }];

logo日誌:

2016-06-10 16:35:59.281 自訂搜尋[4295:326175] obj ==== 4

2016-06-10 16:36:07.952 自訂搜尋[4295:326175] obj ==== 3

2016-06-10 16:36:15.771 自訂搜尋[4295:326175] obj ==== 2

2016-06-10 16:36:20.927 自訂搜尋[4295:326175] obj ==== 1

3、數組排序

 NSArray *arr = [NSArray arrayWithObjects:@"23",@"34",@"54",@"0",@"ef", nil];

    NSArray *sortArr = [arr sortedArrayUsingSelector:@selector(compare:)];

    NSLog(@"sortArr ==== %@",sortArr);

logo日誌:

2016-06-10 17:07:36.509 自訂搜尋[4526:344425] sortArr ==== (

    0,

    23,

    34,

    54,

    ef

)

4、自訂排序

首先建立Person類 

@interface Person : NSObject

 @property (nonatomic, copy) NSString *name;

@property (nonatomic, assign) NSInteger age;

+ (Person*)personWithAge:(int)age withName:(NSString *)name;

- (NSComparisonResult)comparePerson:(Person *)person;

 @end

在.m檔案中實現這兩個方法

+ (Person *)personWithAge:(int)age withName:(NSString *)name

{

    Person *p = [[Person alloc] init];

    p.name = name;

    p.age = age;

    return p;

}

 

#pragma mark 自訂排序

- (NSComparisonResult)comparePerson:(Person *)person

{

    // 預設按年齡排序

    NSComparisonResult result = [[NSNumber numberWithInt:person.age] compare:[NSNumber numberWithInt:self.age]];

    

    // 如果年齡相同,就按照姓名進行排序

    if (result == NSOrderedSame) {

        result = [self.name compare:person.name];

    }

    return result;

}

然後在控制器中實現以下方法

  Person *p1 = [Person personWithAge:24 withName:@"zhangshiye"];

    

    Person *p2 = [Person personWithAge:22 withName:@"lisi"];

    

    Person *p3 = [Person personWithAge:25 withName:@"wangwu"];

    

    Person *p4 = [Person personWithAge:25 withName:@"liwu"];

    

    Person *p5 = [Person personWithAge:21 withName:@"liwuxue"];

    

    NSArray *arrays = [NSArray arrayWithObjects:p1,p2,p3,p4,p5, nil];

    

    NSArray *sortedArray = [arrays sortedArrayUsingSelector:@selector(comparePerson:)];

       NSLog(@"排序後:%@",sortedArray);

 

5.利用Block文法進行排序

 // 利用Block文法進行排序

    NSArray *dataArr = [NSArray arrayWithObjects:@"1bc",@"4b6",@"123",@"789",@"3ef",

              nil];

    NSArray *resultArr = [dataArr sortedArrayUsingComparator:^NSComparisonResult(id  _Nonnull obj1, id  _Nonnull obj2) {

        NSComparisonResult result = [obj1 compare:obj2];

        return result;

    }];

    NSLog(@"排序後:%@",resultArr);

logo日誌:

2016-06-10 17:33:32.221 自訂搜尋[5100:363766] 排序後:(

    123,

    1bc,

    3ef,

    4b6,

    789

)

 

 

iOS數組排列

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.