zoukankan      html  css  js  c++  java
  • NSArray常用方法、排序及乱序

    #import "ViewController.h"
    
    @interface ViewController ()
    
    @end
    
    @implementation ViewController
    
    - (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
  • 相关阅读:
    POJ 题目2750 Potted Flower(线段树求环型区间中连续区间的最大和)
    即使没人看我们也要坚持写Blog
    鸟哥的Linux私房菜-----7、硬件管理
    android createbitmap函数内存溢出,求解怎样进行处理out of memory溢出问题
    hdu4614Vases and Flowers 线段树
    安装npm及cnpm(Windows)
    安装npm及cnpm(Windows)
    安装npm及cnpm(Windows)
    Echarts设置点击事件
    Vs Code中炫酷写代码插件Power Mode的安装配置
  • 原文地址:https://www.cnblogs.com/HJiang/p/4279547.html
Copyright © 2011-2022 走看看