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
时间: 2024-12-16 10:09:19

NSArray常用方法、排序及乱序的相关文章

NSArray的排序和乱序

1 NSArray *array = @[@(3),@(4),@(1),@(2),@(5)]; 2 //升序 3 NSArray *array1 = [array sortedArrayUsingComparator:^NSComparisonResult(id obj1, id obj2) { 4 return [obj1 compare:obj2]; 5 }]; 6 NSLog(@"%@",array1); 7 8 //降序 9 NSArray *array2 = [array s

php 二维数组索引乱序 shuffle() 函数;

在实际开发中有一个打乱数组排序的案例 案例代码如下 public function index(){ if(IS_POST){ #获取卖单列表 $buy_list=M('buy')->where(['status'=>1])->field('num')->select(); #获取卖单列表 $sell_list=M('sell')->where(['status'=>1])->field('num')->select(); foreach($buy_list

iOS之数组的排序(升序、降序及乱序)

#pragma mark -- 数组排序方法(升序) - (void)arraySortASC{ //数组排序 //定义一个数字数组 NSArray *array = @[@(3),@(4),@(2),@(1)]; //对数组进行排序 NSArray *result = [array sortedArrayUsingComparator:^NSComparisonResult(id  _Nonnull obj1, id  _Nonnull obj2) { NSLog(@"%@~%@",

写一个函数实现数组中的元素随机乱序排序

//原生JS写一个函数实现一个shuffle方法,将数组中的元素随机乱序排序 var shuffle = function(arr){ var len,t,rand; for(var i =0;len = arr.length,i<len;i++){ rand = parseInt(Math.random()*len);//parseInt(Math.random()*(len-1-0)+1);或者rand = Math.floor(Math.random()*(len-1-0)+1);即Mat

Collections 乱序、排序方法使用

/**开始*/ package com.gcj.test; import java.text.ParseException; import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; import java.util.Comparator; import java.util.List; /** * * 排序Test * @author youps-a * @version $Id: Tes

Chrome谷歌浏览器中js代码Array.sort排序的bug乱序解决办法

[现象] 代码如下: var list = [{ n: "a", v: 1 }, { n: "b", v: 1 }, { n: "c", v: 1 }, { n: "d", v: 1 }, { n: "e", v: 1 }, { n: "f", v: 1 }, { n: "g", v: 1 }, { n: "h", v: 1 }, { n: &qu

Linq 对string[]字符串数组进行排序 (升序、降序、乱序)

using System; using System.Collections; using System.Linq; namespace ConsoleApp1 { class Program { static void Main(string[] args) { string[] array = { "a.m.", "a", "Smith", "Jones", "module", "zoolog

使用块代码实现数组排序和乱序

1 #import "HMViewController.h" 2 3 @interface HMViewController () 4 5 @end 6 7 @implementation HMViewController 8 9 - (void)viewDidLoad 10 { 11 [super viewDidLoad]; 12 13 // 块代码 14 NSArray *array = @[@(1), @(2), @(3), @(4), @(5)]; 15 16 // 排序 17

数据库存储数据乱序问题

由于提交的留言数据在网页端查询出来的时候,一直存在乱序的问题,有时候新留言插在旧留言的后面,有时候又插在前面,实在是头疼 尝试了一下解决方案 将数据库的存储引擎修改为innoDB 将排序规则修改为utf8_general_ci 这样的话排序就是正常了 由于留言需要倒叙排序,最新的留言显示在最上面,需要在php中将select语句进行处理 使用SELECT * FROM `messages` ORDER BY `messages_id` DESC 就可以了