zoukankan      html  css  js  c++  java
  • OC之打乱对象数组

    最近在学习ios开发,使用OC语言。

    遇到需要打乱对象数组的需求,解决方式如下:

    - (NSArray *) randomArr:(NSArray *)arr
    {// 对数组乱序
        arr = [arr sortedArrayUsingComparator:^NSComparisonResult(People *p1, People *p2) {
            //生成0或1
            int seed = arc4random_uniform(2);
            NSLog(@"%d",seed);
            if (seed) {
                return 1;
            } else {
                return -1;
            }
        }];
        return arr;
    }

    其中要点为:

    1.People类为自定义的类,传入函数的参数是People的对象数组。

    2.使用比较器Comparator进行数组元素的两两比较。

    3.使用arc4random_uniform(2)返回的结果为0或1,概率分别为50%,作为种子,随机选择返回-1或1,从而决定是否互换数组元素的位置。

    4.函数最后返回成功乱序的对象数组。

  • 相关阅读:
    断棍构造过程-波利亚翁方案-中餐馆过程
    狄利克雷过程
    狄利克雷分布
    共轭先验(conjugate prior)
    镜像与文件系统
    Oracle-04
    Oracle-02
    Oracle-01
    认识数据库
    c:forEach的作用
  • 原文地址:https://www.cnblogs.com/luoyihao/p/12828077.html
Copyright © 2011-2022 走看看