天天看点

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