天天看點

NSArray演練-數組排序

- (void)viewDidLoad

{

    [super viewDidLoad];

    // 數組的排序

    // 1. 定義一個數字數組

    NSArray *array = @[@(1), @(2), @(3), @(4), @(5), @(6), @(7), @(8), @(9)];

    // 2. 對數組進行排序

    NSArray *result = [array sortedArrayUsingComparator:^NSComparisonResult(id obj1, id obj2) {

        NSLog(@"%@ ~ %@", obj1, obj2);

        if (arc4random_uniform(2) == 0) {

            return [obj2 compare:obj1];

        } else {

            return [obj1 compare:obj2];

        }

    }];

    NSLog(@"%@", result);

}

#pragma mark - NSArray 常用方法

#pragma mark 數組排序方法(倒序)

- (void)arraySort2

{

    // 數組的排序

    // 1. 定義一個數字數組

    NSArray *array = @[@(3), @(5), @(4), @(2), @(1)];

    // 2. 對數組進行排序

    NSArray *result = [array sortedArrayUsingComparator:^NSComparisonResult(id obj1, id obj2) {

        NSLog(@"%@ ~ %@", obj1, obj2);

        return [obj2 compare:obj1];

    }];

    NSLog(@"%@", result);

}

#pragma mark 數組排序方法(正序)

- (void)arraySort

{

    // 數組的排序

    // 1. 定義一個數字數組

    NSArray *array = @[@(3), @(5), @(4), @(2), @(1)];

    // 2. 對數組進行排序

    NSArray *result = [array sortedArrayUsingComparator:^NSComparisonResult(id obj1, id obj2) {

        NSLog(@"%@ ~ %@", obj1, obj2);

        return [obj1 compare:obj2];

    }];

    NSLog(@"%@", result);

}

#pragma mark 數組常用方法

- (void)testArray

{

    // 1. 定義一個順序的NSNumber的數組

    NSMutableArray *array = [NSMutableArray arrayWithCapacity:4];

    [array addObject:@(1)];

    [array addObject:@(2)];

    [array addObject:@(3)];

    [array addObject:@(4)];

    // 2. 删除其中第二(1)項

    [array removeObjectAtIndex:1];

    // 3. 在第三(2)個索引位置插入一個數字5

    [array insertObject:@(5) atIndex:2];

    // 4. 将第一(0)項和第三(2)項進行交換

    [array exchangeObjectAtIndex:0 withObjectAtIndex:2];

    NSLog(@"%@", array);

}

@end